나는 많은 웹 프로젝트를 수행했습니다. 대부분의 경우 페이지 컨텐츠를 인쇄 할 때 JavaScript를 사용하여 인쇄 할 시스템의 내장 인쇄 방법을 호출합니다. 인쇄 효과와 제어 가능성은별로 좋지 않지만 간신히 사용될 수 있으며 일반 인쇄를 다루는 것은 여전히 괜찮습니다.
코드는 다음과 같습니다.
암호
Actipro Codehighlighter (Freeware)가 제작 한 코드 강조 표시 http://www.codehighlighter.com/--> // 직접 인쇄 및 인쇄 미리보기 기능을 달성하려면 printcontrol.execwb (?,?)을 호출합니다. (일부 영역은 시스템이 제공 한 print () 메소드를 사용하여 인쇄하여 직접 숨길 수 없습니다) // 미리보기 : 미리보기를 표시할지 여부. NULL/FALSE : 표시되지 않음, True : 표시 함수 인쇄 페이지 (미리보기) {try {var content = window.document.body.innerhtml; var oricontent = content; content = content.replace ( "{$ printhide}", "style = 'display : none'"); if (content.indexof ( "id =/"printControl/"") <0) content = inconts =/"printControl/"width = 0 높이 = 0 classid =/"clsid : 8856f961-340a-11d0-A96B-00C04FD705A2/"> </object> "; wind 속성, (6,1) 인쇄, (6,6) 직접 인쇄, (8,1) 페이지 설정 if (preview == null || preview == false) printControl.execwb (6,1); else printcontrol.execwb (7,1); // elecmdid_print = 7; elecmdexecopt_dontpromptuser = 6/elecmdexecopt_promptuser = 1window.document.body.innerhtml = oricontent;} catch (ex) {alert ( "javaScript 스크립트 실행 오류"); }} 함수 printConten (미리보기, html) {try {var content = html; var oricontent = window.document.body.innerhtml; while (content.indexof ( "{$ printhide}")> = 0) content = content.replace ( "{$ printhide}", "style = 'display : none'"); if (content.indexof ( "id =/"printcontrol/"") <0) content = content+"<객체 id =/"printcontrol/"width = 0 높이 = 0 classid =/"clsid : 8856f961-340a-11d0-A96B-00C04FD705A2/"> </object> "; wind 속성, (6,1) 인쇄, (6,6) 직접 인쇄, (8,1) 페이지 설정 if (preview == null || preview == false) printControl.execwb (6,1); else printcontrol.execwb (7,1); // elecmdid_print = 7; elecmdexecopt_dontpromptuser = 6/elecmdexecopt_promptuser = 1window.document.body.innerhtml = oricontent;} catch (ex) {alert ( "javaScript 스크립트 실행 오류"); }}위의 두 기능은 JS 파일에 배치됩니다. 페이지 내용에서 지정된 부분의 내용은 스크립트 파일을 적용하고 추가 캡슐화 된 기능을 호출하여 인쇄 할 수 있습니다.
<script language = "javaScript"> 함수 print (preview) {var text = document.getElementById ( "content"). innerHtml; printConten (preview, text);}인쇄 효과는 아래 그림에 대략 표시됩니다. 인쇄 된 페이지가 프레임 페이지에있는 경우 "선택된 프레임 만 인쇄"옵션을 선택해야합니다.
이 방법을 사용하면 컨트롤을 설치할 필요가 없으므로 호환성이 좋은 장점이 좋습니다. 그러나 보고서의 내용은 통제하기에 더 번거로운 것으로 보입니다. 특히 일부 보고서를 인쇄하려면 특정 결함이있는 복잡한 컨텐츠를 출력해야하지만 전반적으로 더 나은 선택입니다.
나중에 문서 설정에 대한 작업을 수행해야 할 때이 컨트롤을 수행 할 수 없으므로 설정을 더 잘 처리 할 수있는 방법이나 컨트롤이 필요했습니다.
우연히, 나는 다양한 형식의 인쇄를 지원하는 더 나은 인쇄 제어와 내가 관심있는 ID 세트를 발견했습니다. 강력하고 사용하기 쉽고 매우 권장됩니다.
이 컨트롤을 사용할 때 일반 보고서의 인쇄 효과는 다음과 같습니다.
위의 두 보고서의 인쇄는 실제로 유사하며, 둘 다 HTML 컨텐츠의 일부가 인쇄되지만 후자는 더 좋아 보이고 매우 완전한 보고서 기능 설정을 제공합니다.
코드는 대략 다음과 같습니다.
암호
<script language = "javaScript"> function print (preview) {var text = document.getElementById ( "content"). innerHtml; printConten (preview, text) </script> <script ancegry = "javaScript"src = "http://www.cnblogs.com/scripts/checkacts/checkactivx/checkxtivx/checkxtivx. id = "lodop"classId = "clsid : 2105c259-1e0c-4534-8141-a753534cb4ca"width = 0 height = 0> </object> <script language = "javaScript"> var lodop = document.getElementById ( "lodop"); //이 명령문은 dtd 사양을 준수하는 것입니다 checklodop (); </script> <script anception = "javaScript"type = "text/javaScript"> function preview () {// print preview createlicensedata (); lodop.set_show_mode ( "preview_in_browse";); {// 사용자 createlicensedata (); lodop.print_setup ();}; function design () {// 디자인 개발자 설정의 내용과 위치를 인쇄하여 CreatelicenSedata (); lodop.print_design (); wectelicensedata () {lodop.print_init ( "query의 quatelicensedata (); report "); lodop.add_print_htm (20, 40, 610, 900, docum여러 번, 우리가 가지고 있지 않은 콘텐츠는 CSS에 의해 제어되므로 때로는 이러한 스타일없이 HTML의 일부를 인쇄하면 테이블 형식과 글꼴이 변경 될 수 있으며 잘 보이지 않을 수 있습니다. 그런 다음 HTML을 스타일링해야합니다.
인쇄 된 컨텐츠의 스타일을 설정하면 인터페이스가 훨씬 나아질 것입니다.
스타일을 설정하기위한 코드는 다음과 같습니다.
암호
<script language = "javaScript"type = "text/javaScript"> function preview () {// print preview createLicenSedata (); lodop.set_show_mode ( "preview_in_browse", 1); lodop.preview ();}; function createlicensedata () {lodprint_init ( "Applicating Processing Forps"; type = 'text/css'rel = 'stylesheet'href = 'http : //www.cnblogs.com/themes/default/style.css'/> <style> <!-테이블 {테이블 : 1; 배경색 : #cbcbc} td {back 배경색 :#f1f1f3; Padding-left : 5px; 테두리 : 1}-> </style> "; var strformhtml = strbodystyle +"<body> " + document.getElementById ("content "). innerHtml +"</body> "; lodop.add_print_htm (20, 40, 61, 900, 900, strformhtml); lodop.preview ();} </script>위는 편집자가 소개 한 웹 인쇄 솔루션의 일반적인 보고서 인쇄 기능입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!