MeadCo라는 회사에서 개발한 ScriptX 라는 컴포넌트가 있습니다. 이것을 사용하는 것입니다. 물론 무료로 사용 가능하구요. Cab 파일 형태로 제공됨으로 서버에 설치하지 않고 클라이언트 컴터에 설치하여 쓸수 있습니다. 여러분들 어떤 사이트를 방문하면 팝업이 뜨면서 0000 가 배포하는 000 프로그램을 설치하겠나는 메세지 많이들 보셨죠? '예'를 선택하면 자동으로 그 프로그램이 설치되고 해당하는 웹페이지의 기능들을 쓸수 있었잖아요. 이게 바로 그겁니다.
1. 우선 MeadCo 사의 웹사이트에서 ScriptX.Cab을 다운 받으세요. 이름(First Name), 성(Last Name), 이메일 주소를 입력하면 무료로 다운 받으실 수 있습니다.
http://www.meadroid.com/scriptx/sxdownload.asp
2. 다운받은 ScriptX.CAB 파일을 본인 웹서버의 원하는 곳에 업로드 시키세요. http://www.test.com/ActiveX/ScriptX.cab 에 올렸다고 가정하죠.
3. 이제 인쇄기능이 필요한 웹이지 안에 다음의 오브젝트 태그를 삽입하세요.
<object id="factory" style="display:none" viewastext classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" codebase="http://www.test.com/ActiveX/ScriptX.cab#Version=6,1,431,2"></object>
여기는 게시판이라 짤려서 3줄이 됐지만 짤리지 않게 두줄로 삽입하세요.
4. 이제 준비 끝입니다. 다음의 설정 스크립트를 삽입합니다.
<script defer> function Print() { factory.printing.header = "영수증 원본"; // Header에 들어갈 문장 factory.printing.footer = "감사합니다."; // Footer에 들어갈 문장 factory.printing.portrait = false // true 면 가로인쇄, false 면 세로 인쇄 factory.printing.leftMargin = 1.0 // 왼쪽 여백 사이즈 factory.printing.topMargin = 1.0 // 위 여백 사이즈 factory.printing.rightMargin = 1.0 // 오른쪽 여백 사이즈 factory.printing.bottomMargin = 1.0 // 아래 여백 사이즈 factory.printing.SetMarginMeasure(2); // 테두리 여백 사이즈 단위를 인치로 설정합니다. factory.printing.printer = "HP DeskJet 870C"; // 프린트 할 프린터 이름 factory.printing.paperSize = "A4"; // 용지 사이즈 factory.printing.paperSource = "Manual feed"; // 종이 Feed 방식 factory.printing.collate = true; // 순서대로 출력하기 factory.printing.copies = 2; // 인쇄할 매수 factory.printing.SetPageRange(false, 1, 3); // True로 설정하고 1, 3이면 1페이지에서 3페이지까지 출력 factory.printing.Print(true) // 출력하기 } </script>
이제 버튼 하나 만들어서 Print() 만 호출하면 위에 설정된 구성들로 프린트가 될것입니다.
만일 폼값을 받아 위의 설정값들을 변경하려면frm = document.forms[0]; 처럼 폼 다큐먼트를 설정해 준 후document.factory.printing.copies = frm.CopiesValue.value; 처럼 그 값을 받아오면 됩니다. |