ฉันได้ทำโครงการเว็บหลายโครงการแล้ว เวลาส่วนใหญ่เมื่อพิมพ์เนื้อหาหน้าเว็บฉันใช้ JavaScript เพื่อเรียกใช้วิธีการพิมพ์ในตัวของระบบในการพิมพ์นั่นคือโทร printcontrol.execwb (?,?) เพื่อให้ได้ฟังก์ชั่นการพิมพ์โดยตรงและการพิมพ์ แม้ว่าเอฟเฟกต์การพิมพ์และการควบคุมจะไม่ดีมาก แต่ก็สามารถใช้งานได้แทบจะไม่และก็ยังสามารถจัดการกับการพิมพ์ทั่วไปได้
รหัสมีลักษณะเช่นนี้:
รหัส
การเน้นรหัสที่ผลิตโดย Actipro Codehighlighter (ฟรีแวร์) http://www.codehighlighter.com/--> // การโทร printcontrol.execwb (?,?) เพื่อให้ได้ฟังก์ชั่นการพิมพ์โดยตรงและการพิมพ์ (บางพื้นที่ไม่สามารถซ่อนได้โดยตรงโดยการพิมพ์โดยใช้วิธีการพิมพ์ () ที่จัดทำโดยระบบ) // ตัวอย่าง: ไม่ว่าจะแสดงตัวอย่างหรือไม่ NULL/FALSE: ไม่แสดง, จริง: แสดงฟังก์ชั่น printPage (ดูตัวอย่าง) {ลอง {var content = window.document.body.innerhtml; var oricontent = เนื้อหา; ในขณะที่ (content.indexof ("{$ printhide}") content = content.replace ("{$ printhide}", "style = 'display: none'"); if (content.indexof ("id =/" printcontrol/"") <0) content = content+"<object id =/" printControl/"ความสูง = 0 ความสูง = 0 classid =/"clsid: 8856f961-340a-11d0-a96b-00c04fd705a2/"> </object> "; window.document.body.innerhtml = เนื้อหา; // printcontrol.execwb (7,1) แอตทริบิวต์, (6,1) พิมพ์, (6,6) พิมพ์โดยตรง, (8,1) การตั้งค่าหน้าหาก (ดูตัวอย่าง == null || ดูตัวอย่าง == เท็จ) printcontrol.execwb (6,1); else printcontrol.execwb (7,1); // olecmdid_print = 7; OLECMDEXECOPT_DONTPROMPTUSER = 6/OLECMDEXECOPT_PROMPTUSER = 1WINDOW.Document.body.innerhtml = oricontent;} catch (ex) {แจ้งเตือน ("ข้อผิดพลาดการดำเนินการสคริปต์ JavaScript"); }} ฟังก์ชั่น printConten (ตัวอย่าง, html) {ลอง {var content = html; var oricontent = window.document.body.innerhtml; ในขณะที่ (content.indexof ("{$ printhide}")> = 0) content = content.replace ("{$ printhide}", "style = 'display: none'"); ถ้า (content.indexof ("id =/" printcontrol/"") <0) classid =/"clsid: 8856f961-340a-11d0-a96b-00c04fd705a2/"> </object> "; window.document.body.innerhtml = เนื้อหา; // printcontrol.execwb (7,1) แอตทริบิวต์, (6,1) พิมพ์, (6,6) พิมพ์โดยตรง, (8,1) การตั้งค่าหน้าหาก (ดูตัวอย่าง == null || ดูตัวอย่าง == เท็จ) printcontrol.execwb (6,1); else printcontrol.execwb (7,1); // olecmdid_print = 7; OLECMDEXECOPT_DONTPROMPTUSER = 6/OLECMDEXECOPT_PROMPTUSER = 1WINDOW.Document.body.innerhtml = oricontent;} catch (ex) {แจ้งเตือน ("ข้อผิดพลาดการดำเนินการสคริปต์ JavaScript"); -ฟังก์ชั่นสองฟังก์ชั่นข้างต้นถูกวางไว้ในไฟล์ JS ในเนื้อหาหน้าเนื้อหาของส่วนที่ระบุสามารถพิมพ์ได้โดยใช้ไฟล์สคริปต์และเรียกฟังก์ชันที่ห่อหุ้มเพิ่มเติม:
<script language = "JavaScript"> ฟังก์ชั่นพิมพ์ (ดูตัวอย่าง) {var text = document.getElementById ("เนื้อหา"). innerhtml; printConten (ดูตัวอย่างข้อความ);}เอฟเฟกต์การพิมพ์จะแสดงในรูปด้านล่าง หากหน้าพิมพ์อยู่ในหน้าเฟรมคุณต้องเลือกตัวเลือก "พิมพ์เฉพาะเฟรมที่เลือก"
การใช้วิธีนี้ไม่จำเป็นต้องติดตั้งการควบคุมใด ๆ ซึ่งมีข้อได้เปรียบที่เข้ากันได้ดี อย่างไรก็ตามเนื้อหาของรายงานดูเหมือนจะลำบากมากขึ้นในการควบคุม โดยเฉพาะอย่างยิ่งสำหรับการพิมพ์รายงานบางอย่างจำเป็นต้องส่งเนื้อหาที่ซับซ้อนซึ่งมีข้อบกพร่องบางอย่าง แต่โดยรวมแล้วมันก็เป็นตัวเลือกที่ดีกว่า
ต่อมาเมื่อฉันต้องการทำงานบางอย่างเกี่ยวกับการตั้งค่าเอกสารการควบคุมนี้ไม่สามารถทำได้ดังนั้นฉันจึงต้องการวิธีการหรือการควบคุมที่สามารถจัดการการตั้งค่าได้ดีขึ้น
โดยบังเอิญฉันพบการควบคุมการพิมพ์ที่ดีกว่าที่รองรับการพิมพ์ในรูปแบบต่าง ๆ และชุดรหัสที่ฉันสนใจ มันมีประสิทธิภาพและใช้งานง่ายและขอแนะนำอย่างมาก
เมื่อใช้การควบคุมนี้เอฟเฟกต์การพิมพ์ของรายงานปกติมีดังนี้:
การพิมพ์รายงานสองฉบับข้างต้นนั้นคล้ายคลึงกันซึ่งทั้งสองอย่างนี้เป็นส่วนหนึ่งของเนื้อหา HTML แต่ส่วนหลังดูดีขึ้นและให้การตั้งค่าฟังก์ชั่นรายงานที่สมบูรณ์มาก
รหัสมีดังนี้
รหัส
<script language = "JavaScript"> ฟังก์ชั่นการพิมพ์ (ดูตัวอย่าง) {var text = document.getElementById ("เนื้อหา"). innerhtml; printConten (ดูตัวอย่าง, ข้อความ);} </สคริปต์> <ภาษาสคริปต์ = "javascript" src = "http://ww.cnblogs id = "lodop" classid = "clsid: 2105c259-1e0c-4534-8141-a753534cb4ca" ความกว้าง = 0 ความสูง = 0> </object> <ภาษาสคริปต์ = "JavaScript"> var lodop = document // บรรทัดคำสั่งนี้จะต้องปฏิบัติตาม DTD SPECIFICATION DECATIONDOP (); </Script> <script Language = "JavaScript" type = "text/javascript"> preview function () {// preview preview createlicensedata (); lodop.set_show_mode ("PREVIEWSE {// พิมพ์การบำรุงรักษาเพื่อปรับตำแหน่งสำหรับผู้ใช้ createLicensedata (); lodop.print_setup ();}; ฟังก์ชั่นการออกแบบ () {// พิมพ์เนื้อหาและตำแหน่งของการตั้งค่านักพัฒนาออกแบบ createLicensedata (); lodop.print_design ();}; รายงาน "); lodop.add_print_htm (20, 40, 610, 900, document.all (" เนื้อหา "). innerhtml); lodop.preview ();} </script>หลายครั้งที่เนื้อหาที่เราไม่ได้ถูกควบคุมโดย CSS ดังนั้นบางครั้งถ้าเราพิมพ์ส่วนหนึ่งของ HTML โดยไม่มีรูปแบบเหล่านี้รูปแบบตารางและแบบอักษรที่ออกมาอาจเปลี่ยนแปลงและดูไม่ดีนัก จากนั้นคุณต้องจัดสไตล์ HTML
หากคุณตั้งค่าสไตล์สำหรับเนื้อหาที่พิมพ์อินเทอร์เฟซจะดีขึ้นมาก
รหัสสำหรับการตั้งค่าสไตล์มีดังนี้
รหัส
<script language = "javascript" type = "text/javaScript"> ฟังก์ชั่นตัวอย่าง () {// preview preview createlicensedata (); lodop.set_show_mode ("preview_in_browse", 1); lodop.preview (); = "<link type = 'text/css' rel = 'stylesheet' href = 'http: //www.cnblogs.com/themes/default/style.css'/> <style> <! พื้นหลังสี:#f1f1f3; padding-left: 5px; border: 1}-> </style> "; var strformhtml = strbodystyle +" <body> " + document.getElementByid (" เนื้อหา "). innerHtml +" </body> strformhtml); lodop.preview ();} </script>ด้านบนเป็นฟังก์ชั่นการพิมพ์รายงานสามัญของโซลูชันการพิมพ์เว็บที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!