JavaScript

원하는 부분만 인쇄
  • 조회수 4,911
  • 작성일 2008-07-29
  •  
//원하는 부분 인쇄//
var initBody
function beforePrint(){
    initBody = document.body.innerHTML;
    document.body.innerHTML = mapContainer.innerHTML;
}
function afterPrint(){
    document.body.innerHTML = initBody;
}
function printArea() {
    window.print();
}
window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;
//인쇄 스크립트 끝//


[소스 설명]

먼저 각 이벤트가 발생하는 시점을 보면....
onbeforeprint : 관련된 문서를 인쇄하거나 인쇄 미리보기하기 바로전에 발생
onafterprint : 관련된 문서를 인쇄하거나 인쇄 미리보기한 후 즉시 발생
이와 같습니다.

작동은
우선 beforePrint() 함수를 보면..

    function beforePrint(){
        // initBody라는 변수에 현제 페이지의 body태그 안에 있는 모든 HTML 소스를 저장하고
        initBody = document.body.innerHTML;
        // 현제 페이지의 body태그 안에 내용을 <div id = pnt_dv></div> 안에 있는 HTML 소스들로 대체합니다.
        document.body.innerHTML = pnt_dv.innerHTML;
    }

이상태에서 인쇄나 인쇄 미리보기를 실시하여 <div id = pnt_dv></div> 안에 있는 HTML 소스에 대해서 인쇄가 되고 인쇄를 마치면 afterPrint() 함수를 실행하죠

    function afterPrint(){
        // 다시 문서의 body태그 안에 내용을 앞에서 저장해둔 기존의 HTML소스(initBody)로 되돌려 놓습니다.
        document.body.innerHTML = initBody;
    }