บทความนี้ส่วนใหญ่แนะนำความรู้ที่เกี่ยวข้องเกี่ยวกับวิธีการใช้ตัวอย่างการพิมพ์และการบันทึกเนื้อหาของหน้าเว็บ มาเรียนรู้กันเถอะ!
1. ปัญหาเกี่ยวกับการพิมพ์หน้าเว็บ
ก่อนหน้านี้ฉันมักจะใช้ Lodop ที่ใช้งานง่ายกว่าเพื่อดำเนินการพิมพ์ สิ่งนี้ถูกปกคลุมด้วยบทความมากมายในบทความก่อนหน้าของฉัน การควบคุมนี้เป็นตัวควบคุม ActiveX หลังจากดาวน์โหลดและติดตั้งคุณสามารถพิมพ์บนหน้าเว็บ นอกจากนี้ยังเป็นตัวควบคุมที่สะดวกมาก ดังนั้นจึงเหมาะมากสำหรับการพิมพ์เนื้อหาสามัญชุดเอกสารและการดำเนินการอื่น ๆ
อย่างไรก็ตามด้วยการอัปเดตเทคโนโลยีเบราว์เซอร์ปลั๊กอินนี้ดูเหมือนจะไม่ได้รับการสนับสนุนใน Chrome หรือ Firefox และโดยทั่วไปจะยกเลิกวิธีการประมวลผลของปลั๊กอินนี้ ตัวอย่างเช่นหากฉันต้องการพิมพ์เนื้อหาในกล่องโต้ตอบบนหน้าดังที่แสดงด้านล่าง
หากคุณประมวลผลในวิธีปกติในการใช้ LODOP คุณจะได้รับพรอมต์จากเบราว์เซอร์ Chrome และข้อความแสดงข้อผิดพลาดนี้จะดำเนินต่อไปไม่ว่าคุณจะดาวน์โหลดหรืออัปเดตการควบคุม LODOP
สำหรับวิธีการอื่นนี่คือหัวข้อของบทความนี้ ฉันชอบที่จะหาวิธีที่ดีกว่าในการใช้งานฟังก์ชั่นที่ฉันต้องการอยู่เสมอดังนั้นฉันจึงพบปลั๊กอินของ printthis (https://github.com/jasonday/printthis) และ jQuery-print-preview-plugin (https://github.com/etimbo/jquery-printpreview เมื่อเทียบกับทั้งสองฉันชอบการใช้งานที่เรียบง่ายและสะดวกสบายของคนแรก
2. ใช้ปลั๊กอินพิมพ์นี้
ด้วยปัญหาข้างต้นเราแนะนำวิธีการพิมพ์ใหม่นั่นคือปลั๊กอิน jQuery เพื่อใช้การดำเนินการพิมพ์ของเนื้อหาหน้าเว็บที่เราต้องการ
การใช้ปลั๊กอินนี้ง่ายและสะดวกมาก ก่อนอื่นคุณต้องแนะนำไฟล์ JS ที่เกี่ยวข้องลงในหน้าดังที่แสดงด้านล่าง
<script src = "~/content/jQueryTools/printthis/printthis.js"> </script>
เราจะเพิ่มสองปุ่มที่ด้านบนของหน้าเช่นการพิมพ์และการส่งออกรหัสมีดังนี้
<div> <a href = "#" onclick = "javascript: preview ();"> <img src = "~/content/images/print.gif"/> <br/> preview preview </a> <a href = "#" onclick = "javascript: saveas () เป็น </a> </div>
จากนั้นเราต้องประกาศ DIV เพื่อวางเนื้อหาหน้าเว็บที่แสดงซึ่งสะดวกสำหรับการพิมพ์
รหัสการประมวลผลที่เราพิมพ์นั้นง่ายมากเพียงแค่พิมพ์เลเยอร์โดยตรง คุณจะเห็นว่ารหัสการใช้งานด้านล่างนั้นง่ายมาก
// การพิมพ์ตัวอย่างฟังก์ชั่นดูตัวอย่าง () {$ ("#printContent"). printthis ({debug: false, importcss: true, importstyle: true, printcontainer: จริง, loadcss: "/content/themes/default/style.css" FormValues: True}); -หลังจากดำเนินการพิมพ์กล่องโต้ตอบการพิมพ์ตัวอย่างจะปรากฏขึ้นใน IE และ Chrome เพื่อยืนยันว่าจะพิมพ์หรือไม่
3. บันทึกเนื้อหาหน้าเว็บ
บางครั้งเพื่ออำนวยความสะดวกในการดำเนินการทางธุรกิจเราสามารถให้การดำเนินการเพื่อส่งออกเนื้อหาที่พิมพ์ออกมา รหัสที่แสดงด้านล่างคือการส่งออกเนื้อหาที่พิมพ์ไปยัง Word สำหรับผู้ใช้ในการประมวลผลและวัตถุประสงค์อื่น ๆ
ฟังก์ชั่น saveas () {var id = $ ('#id2'). val (); window.open ('/ข้อมูล/exportwordById? id =' + id); -การดำเนินการข้างต้นส่วนใหญ่เรียกวิธีการคอนโทรลเลอร์ MVC สำหรับการประมวลผลผ่าน ID เพื่อแยกเนื้อหาจากนั้นสร้างเนื้อหาคำที่ต้องการ
ในพื้นหลังเราใช้การควบคุม APOSE.WORD เป็นหลักเพื่อสร้างเอกสารเทมเพลต
เราสามารถกำหนดหรือดูข้อมูลบุ๊คมาร์คในบุ๊กมาร์กดังแสดงในรูปด้านล่าง
ด้วยวิธีนี้เราสามารถรับข้อมูลและระบุเทมเพลตคำนี้ในรหัส
InformationInfo info = bllfactory <ponge> .instance.findbyid (id); if (info! = null) {String template = "~/content/template/policy scale board.doc"; String TemplateFile = Server.Mappath (เทมเพลต); Aspose.words.document doc = new Aspose.words.document (TemplateFile);เนื้อหาของเทมเพลตคำสามารถถูกแทนที่โดยใช้ข้อความดังที่แสดงด้านล่าง
setbookmark (อ้างอิงเอกสาร "เนื้อหา", info.content);
นอกจากนี้คุณยังสามารถใช้วิธีบุ๊คมาร์คบุ๊คมาร์คเพื่อสอบถามและแทนที่ดังที่แสดงในรหัสต่อไปนี้
Aspose.words.bookmark บุ๊คมาร์ค = doc.range.bookmarks [ชื่อ]; if (bookmark! = null) {bookmark.text = value; -สิ่งนี้ต้องการการรักษาพิเศษสำหรับเนื้อหา HTML หลัก โดยทั่วไปจำเป็นต้องเขียนเนื้อหาโดยใช้วิธีการเฉพาะในการแทรก HTML มิฉะนั้นจะแสดงรหัส HTML เนื้อหาที่เขียนโดยใช้วิธี HTML โดยเฉพาะนั้นไม่แตกต่างจากสิ่งที่เราเห็นบนหน้าเว็บ ดังที่แสดงในรหัสต่อไปนี้
DocumentBuilder Builder = New DocumentBuilder (DOC); Aspose.words.bookmark บุ๊คมาร์ค = doc.Range.BookMarks ["เนื้อหา"]; if (bookmark! = null) {builder.movetobookmark (bookmark.name); builder.inserthtml (info.content); -วิธีการทั้งหมดในการนำเข้าเอกสาร Word คือการใช้การรวมเนื้อหาเหล่านี้เพื่อให้ได้การสร้างเอกสารมาตรฐาน เอกสารธุรกิจประเภทนี้เป็นเทมเพลตคงที่ดังนั้นจึงเหมาะสำหรับใช้ในธุรกิจจริง มันมีพลาสติกและสุนทรียศาสตร์ที่ดีกว่าไฟล์หรือเอกสาร HTML ที่สร้างขึ้นโดยอัตโนมัติโดยใช้วิธีอื่น
รหัสทั้งหมดแสดงอยู่ด้านล่าง
Public FileStreamResult ExportWordById (String ID) {if (string.isnullorEmpty (ID)) ส่งคืน null; InformationInfo info = bllfactory <ponge> .instance.findbyid (id); if (info! = null) {String template = "~/content/template/policy scale board.doc"; String TemplateFile = Server.Mappath (เทมเพลต); Aspose.words.document doc = new Aspose.words.document (TemplateFile); #region ใช้ข้อความเพื่อแทนที่ // พจนานุกรม <สตริง, สตริง> dictSource = พจนานุกรมใหม่ <สตริง, สตริง> (); //dictsource.add("title ", info.title); //dictsource.add("content ", info.content); //dictsource.add("editor ", info.editor); //dictsource.add("edittime ", info.edittime.toString ()); //dictsource.add("subtype ", info.subtype); // foreach (ชื่อสตริงใน dictsource.keys) // {// doc.range.replace (ชื่อ, dictsource [ชื่อ], จริง, จริง); //} #endregion // แทนที่ setbookmark (อ้างอิงเอกสาร "ชื่อ", info.title); setbookmark (อ้างอิงเอกสาร "บรรณาธิการ", info.editor); setbookmark (อ้างอิงเอกสาร "edittime", info.edittime.toString ()); setbookmark (อ้างอิงเอกสาร "ชนิดย่อย", info.subtype); // setbookmark (อ้างอิงเอกสาร "เนื้อหา", info.content); // สำหรับเนื้อหา HTML คุณต้องเขียน DocumentBuilder Builder = New DocumentBuilder (DOC); Aspose.words.bookmark บุ๊คมาร์ค = doc.Range.BookMarks ["เนื้อหา"]; if (bookmark! = null) {builder.movetobookmark (bookmark.name); builder.inserthtml (info.content); } doc.save (system.web.httpcontext.current.response, info.title, aspose.words.contentdisposition.attachment, aspose.words.saving.saveoptions.createsaveoptions (aspose.words.saveformat.doc)); การตอบสนอง httpresponseBase = controlerContext.httpContext.response; Response.flush (); Response.end (); ส่งคืน FileStreamResult ใหม่ (Response.OutputStream, "Application/MS-word"); } return null; } โมฆะส่วนตัว setbookmark (REF aspose.words.document เอกสาร, ชื่อสตริง, ค่าสตริง) {aspose.words.bookmark bookmark = doc.Range.BookMarks [ชื่อ]; if (bookmark! = null) {bookmark.text = value; -เอกสาร Word ที่ส่งออกขั้นสุดท้ายคือเนื้อหาเอกสารเฉพาะ templated และอินเตอร์เฟส Preview Word จะแสดงด้านล่าง
ข้างต้นเป็นบทสรุปของประสบการณ์ของกรอบการพัฒนา Bootstrap Metronic ตาม bootstrap metronic ที่แนะนำให้คุณ [9] เพื่อรับรู้ตัวอย่างการพิมพ์และการบันทึกเนื้อหาของหน้าเว็บ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณต้องการทราบข้อมูลเพิ่มเติมโปรดให้ความสนใจกับเว็บไซต์ Wulin.com!