ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 출력물 프로그램 없이 window 객체를 활용한 무료 출력물 만들기
    수상한 프로그래머/죽은 소스 살려내는 꾸르팁 2020. 5. 27. 10:52
    반응형

    웹개발을 하다 보면 웹 내용을 출력해 달라거나 별도의 출력물을 요청하는 경우가 생긴다.

    그럴때 주로 비싼 출력물 솔루션을 사용하지만 흔히 알고 있는 window객체를 이용하여 무료로 출력물을 만들수 있는 방법이

    있어 소개하고자 한다 ㅎㅎ 공짜 Free~~ +_+

    방법은  window.print(); !!

    보통 현재 브라우저에서 보고 있는 화면을 인쇄하고 싶을때 

    마우스 우클릭후 인쇄버튼을 누르면 

    이런 출력창이 뜨면서 PDF로 저장하거나 출력도 할수 있다.(사진은 Chrome  브라우저에서 인쇄를 실행한 모습)

    해당 브라우저를 쓰고 있으면 window.print();를 쓸수 있다. 그럼 이걸 활용해서 간단한 출력물을 만들어보자!

    일단 자바스크립트 소스에서 인쇄버튼을 누르면 window.open();을 활용해 새창을 띄운다.

    이때 미리 만들어 놓은 HTML 파일을 띄우도록 하자.

    //Json형태의 파라미터를 String으로 넘기기
    var params = {"TITLE" : "TEST문서제목", "NAME" : "출력물"};
    var TextParams = JSON.stringify(params);
    
    //get방식으로 HTML에 파라미터 전달 
    var myWindow = window.open('./testPrint.html?'+TextParams); 

    testPrint.html을 띄우며 파라미터를 전달했다.

    <title>testPrint</title>  
        <style type="text/css" media="print">
        /*인쇄 페이지를 빈틈없이*/
    	@page {
    	    size: auto;  /* auto is the initial value */
    	    margin: 0;  /* this affects the margin in the printer settings */
    	}
        /*p태그 사용시 다음 페이지 출력*/
    	@media print {
    	    p { 
    	    page-break-after: always; 
    	    }
    	}
    	</style>
         
         <script type="text/javascript">
             //파라미터받기
    	     function getUrlParams() {
    	    	    var params = {};
    	    	    var params = location.search.substr(location.search.indexOf("?") + 1);
    	    	    return params;
    	    	}
    	     //윈도우가 로드될때 받은 파라미터를 Json으로 파싱후 값을 삽입
    	    window.onload = function() {
    	    		var onParams = getUrlParams();
    	    		var params =  JSON.parse(decodeURIComponent(onParams));
    	    		document.getElementById('TITLE').innerText = params.TITLE;
    	    		document.getElementById('NAME').innerText = params.NAME;
    	    		//출력
    	    		window.print();	    	
    	    }
         </script>
    </head>
    <body>
    
    <table style="height: 228px; border-color: white; background-color: white;" width="561">
    <tbody>
    <tr>
    <td style="width: 272px; text-align: center;">
    <h1><strong><div />Page1</strong></h1>
    </td>
    <td style="width: 273px; text-align: center;">
    <h1><strong><div />Page1</strong></h1>
    </td>
    </tr>
    <tr>
    <td style="width: 272px; text-align: center;">
    <h1><strong><div id="TITLE" /></strong></h1>
    </td>
    <td style="width: 273px; text-align: center;">
    <h1><strong><div id="NAME" /></strong></h1>
    </td>
    </tr>
    </tbody>
    </table>
    
    <p></p>
    
    .......

    파라미터를 받는 HTML 소스... 간단히 정리하면

    html을 그린다음 파라미터를 전달받아 TITLE, NAME이란  id값에 값을 넣어주고 출력하는 소스 이다.

    아 가장 중요한거!! 보통 출력물을 출력할땐 한장이 아닌 여러장으로 출력해야 한다. 

    이때 상단에 

    @media print {

        p { 

        page-break-after: always; 

        }

    }

    선언후 <p/> 태그를 이용하면 페이지 출력시 페이지가 구분되어 출력된다.

     

     

    기본적인 HTML로 에디터를 이용하거나 그리기만 한다면 나만의 출력물을 무료로 만들수 있고

    복잡한 출력물은 필요에 따라 Jquery나 양식 이미지 배경을 활용하여 꾸며 주면 멋진 출력물을 완성할 수있다.

    멋지지 않는가?ㅋ (물론 돈 많으면 프린트 솔루션 쓰는게 최고..)

    반응형

    댓글

Designed by Tistory.