تقدم هذه المقالة بشكل أساسي المعرفة ذات الصلة حول كيفية تنفيذ معاينة الطباعة وحفظ محتوى صفحة الويب. دعونا نتعلم معا!
1. مشاكل حول طباعة صفحة الويب
قبل ذلك ، استخدمت عمومًا لودوب أسهل للاستخدام لأداء عمليات الطباعة. تم تغطيتها من قبل العديد من المقالات في مقالاتي السابقة. هذا التحكم هو عنصر تحكم ActiveX. بعد التنزيل والتثبيت ، يمكنك الطباعة على الصفحة. كما أنه عنصر تحكم مناسب للغاية. لذلك ، فهي مناسبة للغاية لطباعة المحتوى العادي ومجموعات المستندات والعمليات الأخرى.
ومع ذلك ، مع تحديث تقنية المتصفح ، يبدو أن هذا المكون الإضافي غير مدعوم على Chrome أو Firefox ، ويتخلى عن طريقة معالجة هذا المكون الإضافي بشكل أساسي. على سبيل المثال ، إذا كنت بحاجة إلى طباعة المحتويات في مربع الحوار على الصفحة ، كما هو موضح أدناه.
إذا قمت بمعالجتها بالطريقة العادية لاستخدام LODOP ، فستحصل على مطالبة من متصفح Chrome ، وستستمر رسالة الخطأ هذه بغض النظر عما إذا كنت تقوم بتنزيل أو تحديث عنصر تحكم LODOP.
للطرق البديلة ، هذا هو موضوع هذه المقالة. لطالما أحببت العثور على بعض الطرق الأفضل لتنفيذ الوظائف التي أحتاجها ، لذلك وجدت مكونًا إضافيًا لـ PrintThis (https://github.com/jasonday/printthis) و jquery-print-preview-plugin (https://github.com/etimbo/jquery-print-preview-preive-plugin). بالمقارنة مع الاثنين ، أفضل الاستخدام البسيط والمريح للآخر.
2. استخدام المكونات الإضافية للطباعة
مع المشكلة أعلاه ، نقدم طريقة طباعة جديدة ، أي المكون الإضافي jQuery لتنفيذ عملية طباعة محتوى الصفحة الذي نحتاجه.
استخدام هذا المكون الإضافي بسيط للغاية ومريح. أولاً ، تحتاج إلى تقديم ملف JS المقابل في الصفحة ، كما هو موضح أدناه.
<script src = "~/content/jQueryTools/printThis/printThis.js"> </script>
سنضيف زريين في الجزء العلوي من الصفحة ، مثل عمليات الطباعة والتصدير ، والرمز كما يلي
<viv> <a href = "#" onClick = "javaScript: Preview () ؛"> <img src = "~/content/print. كـ </a> </viv>
ثم نحتاج أيضًا إلى إعلان DIV لوضع محتوى صفحة الويب المعروض ، وهو مناسب للطباعة عليه.
رمز المعالجة الذي نطبعه هو أيضًا بسيط للغاية ، ما عليك سوى طباعة الطبقة مباشرة. يمكنك أن ترى أن رمز الاستخدام أدناه بسيط للغاية.
// Print Preview Function Preview () {$ ("#printcontent"). printhis ({debug: false ، importcss: true ، importStyle: true ، printcontainer: true ، loadcss: FormValues: True}) ؛ } ؛بعد تنفيذ الطباعة ، سيظهر مربع حوار معاينة الطباعة في IE و Chrome لتأكيد ما إذا كان سيتم الطباعة.
3. حفظ محتوى الصفحة
في بعض الأحيان ، من أجل تسهيل معالجة الأعمال ، يمكننا عمومًا تزويد المستخدمين بعملية عملية لتصدير المحتوى المطبوع. الكود الموضح أدناه هو تصدير المحتوى المطبوع إلى Word للمستخدمين لمعالجة وأغراض أخرى.
دالة saveas () {var id = $ ('#id2'). val () ؛ Window.Open ('/information/exportwordbyid؟ id =' + id) ؛ }تستدعي العملية أعلاه بشكل أساسي طريقة وحدة تحكم MVC للمعالجة ، وتمرير معرف لاستخراج المحتوى ، ثم إنشاء محتوى الكلمة المطلوب.
في الخلفية ، نستخدم بشكل أساسي التحكم في الكلمات apose.
يمكننا تحديد أو عرض بعض المعلومات المرجعية في الإشارة المرجعية ، كما هو موضح في الشكل أدناه.
وبهذه الطريقة ، يمكننا الحصول على معلومات وتحديد قالب الكلمات هذا في الكود.
informationInfo info = bllfactory <information> .instance.findbyid (id) ؛ if (info! = null) {string template = "~/content/template/policy scale board.doc" ؛ سلسلة templatefile = server.mappath (قالب) ؛ aspose.words.document doc = new aspose.words.document (templatefile) ؛يمكن استبدال محتوى قالب الكلمة باستخدام النص ، كما هو موضح أدناه.
setBookMark (Ref Doc ، "Content" ، info.content) ؛
يمكنك أيضًا استخدام طريقة الإشارة المرجعية للاستعلام واستبدالها ، كما هو موضح في الكود التالي.
aspose.words.bookmark lookmark = doc.range.bookmarks [title] ؛ if (bookmark! = null) {bookmark.text = value ؛ }هذا يتطلب علاجًا خاصًا لمحتوى HTML الرئيسي. بشكل عام ، من الضروري كتابة المحتوى باستخدام طريقة مخصصة لإدخال HTML ، وإلا سيتم عرض رمز HTML. لا يختلف المحتوى المكتوب باستخدام طريقة HTML المخصصة بشكل أساسي عما نراه في صفحة الويب. كما هو موضح في الكود التالي.
DocumentBuilder Builder = new documentBuilder (doc) ؛ aspose.words.bookmark lookmark = doc.range.bookmarks ["content"] ؛ if (bookmark! = null) {builder.movetObookmark (bookmark.name) ؛ builder.inserthtml (info.content) ؛ }تتمثل الطريقة الكاملة لاستيراد مستندات الكلمات في استخدام تكامل هذه المحتويات لتحقيق توليد مستند قياسي. هذا النوع من المستندات التجارية هو قالب ثابت ، لذلك فهو مناسب جدًا للاستخدام في الأعمال الفعلية. يحتوي على اللدونة والجمال بشكل أفضل من ملفات HTML أو المستندات التي يتم إنشاؤها تلقائيًا باستخدام طرق أخرى.
يظهر الرمز بأكمله أدناه.
Public FileStreamResult ExportWordById (string id) {if (string.isnullorempty (id)) return null ؛ informationInfo info = bllfactory <information> .instance.findbyid (id) ؛ if (info! = null) {string template = "~/content/template/policy scale board.doc" ؛ سلسلة templatefile = server.mappath (قالب) ؛ aspose.words.document doc = new aspose.words.document (templatefile) ؛ #region استخدم النص لاستبدال // القاموس <string ، string> dictSource = New Dictionary <String ، String> () ؛ //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 [name] ، true ، true) ؛ //} #endregion // استبدال setBookmark (Ref doc ، "title" ، info.title) ؛ setBookmark (Ref Doc ، "Editor" ، info.editor) ؛ setBookmark (Ref Doc ، "EditTime" ، info.edittime.toString ()) ؛ setBookmark (Ref Doc ، "النوع الفرعي" ، info.subtype) ؛ // setBookmark (Ref Doc ، "Content" ، info.content) ؛ // لمحتوى HTML ، تحتاج إلى كتابة DocumentBuilder Builder = new documentBuilder (doc) ؛ aspose.words.bookmark lookmark = doc.range.bookmarks ["content"] ؛ 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 ؛ استجابة. flush () ؛ استجابة. إرجاع FileStreamResult جديد (Response.outputStream ، "Application/MS-WORD") ؛ } إرجاع فارغ ؛ } private void setbookmark (ref aspose.words.document doc ، عنوان السلسلة ، قيمة السلسلة) {aspose.words.bookmark lookmark = doc.range.bookmarks [title] ؛ if (bookmark! = null) {bookmark.text = value ؛ }}مستند Word الذي تم تصديره النهائي هو محتوى المستند المحدد المحدد ، ويتم عرض واجهة Word Preview أدناه.
ما سبق هو ملخص تجربة إطار تطوير Metronic Bootstrap استنادًا إلى Metronic Bootstrap المقدمة لك [9] لتحقيق معاينة الطباعة وحفظ محتوى صفحة الويب. آمل أن يكون ذلك مفيدًا للجميع. إذا كنت تريد معرفة المزيد من المعلومات ، فيرجى الانتباه إلى موقع Wulin.com!