웹사이트를 제작할때 여러분은 프린트 지원을 어떻게 하는가? 아마 대부분 자바스크립트에서 제공하는 print() 메서드를 사용할 것이다.
window.top.print(); |
하지만 이 메서드를 사용하면 여러분은 보지 않아도 되는 프린트 대화상자가 뜨는 것과 인쇄되는 페이지의 헤더와 풋터를 제어할 수 없다. 이들을 어떻게 제어해야 하는가?
아쉽게도 우리가 알고있는 자바스크립트나 ASP로는 이를 제어할 수 없다. 다른 프로그래밍 언어를 사용하여 프린터를 직접 제어하도록 컴포넌트를 구축해야 한다. 여러분이 이를 직접 만든다는것도 성가신 일 중의 하나일 것이다.
다행히도 여러분이 자유롭게 가져다 쓸 수 있는 프린트 컴포넌트가 있다. MeadCo에서 만든 ScriptX라는 컴포넌트이다. 여러분은 이 컴포넌트를 클라이언트에서 직접 참조하여 사용할 수 있고 또한 다운을 받아서 여러분의 서버에 설치하여 사용할 수 있다. 여기서는 클라이언트에서 직접 참조하여 사용하는 것에 대해서 보겠다.
우선 여러분의 HTML문서에 개체를 추가하여야 한다.
<!-- MeadCo ScriptX --> <object id=factory style="display:none" classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" codebase="http://www.meadroid.com/scriptx/ScriptX.cab#Version=6,1,429,14"> </object> |
위와 같은 코드를 문서에 삽입하면 MeadCo 사이트의 ScriptX 개체를 참조하게 된다. (ASP 에서 CreateObject나 클라이언트 스크립트에서 new ActiveXObject를 호출하지 않는다.) 이제 이를 호출하여 프린트하는 스크립트를 추가한다.
<script> function printWindow() { factory.printing.header = "This is MeadCo" factory.printing.footer = "Printing by ScriptX 5.x" factory.printing.portrait = false factory.printing.leftMargin = 1.0 factory.printing.topMargin = 1.0 factory.printing.rightMargin = 1.0 factory.printing.bottomMargin = 1.0 factory.printing.Print(false, window) } </script> |
header는 페이지 상단에 인쇄되는 부분이며 footer는 페이지 하단에 인쇄되는 부분을 말한다. portrait을 false로 하면 가로 출력이되며 true로 하면 세로 출력을 한다. 그 아래의 4개는 상하좌우의 여백을 조정하며 Print 메서드에서 첫번째 인수는 프린트 대화상자를 표시할 것인지를 나타내는 것으로 false로 되어있는 경우 대화상자를 표시하지 않고 기본 프린터로 바로 출력을 한다. 두번째 인수는 전체 HTML 페이지를 인쇄할 것인지 아니면 특정 프레임을 출력할 것인지를 설정한다.
기타 다른 기술적인 부분에 대해서는 MeadCo의 Tech Docs 부분을 참고하기 바란다. 다음은 실제 이 컴포넌트를 사용하여서 프린트할 수 있는 예제이다. 전체 소스를 복사하여 HTML 문서에 저장하여 실행시킨다.
[출처] : http://korea.internet.com/channel/content.asp?kid=10&nid=23649&cid=194
'프로그램 > Html & Js & Css' 카테고리의 다른 글
프레임으로 나뉜 웹페이지 새로고침 (0) | 2009.03.30 |
---|---|
[펌] - 자바스크립트 디버깅 (0) | 2009.03.30 |
[펌] - 엑셀 저장후 jsp 에서 "엑세스가 거부되었습니다" 라는 메세지가 뜰때 (0) | 2009.03.30 |
[펌] - IE 인쇄 미리보기 (0) | 2009.03.30 |
파일의 확장자 구하기 (0) | 2009.03.30 |