لقد فعلت العديد من مشاريع الويب. في معظم الوقت عند طباعة محتوى الصفحة ، أستخدم JavaScript للاتصال بالطريقة المدمجة للطباعة للنظام للطباعة ، أي استدعاء PrintControl.execwb (؟ ،؟) لتحقيق وظائف معاينة الطباعة المباشرة والطباعة. على الرغم من أن تأثير الطباعة وإمكانية التحكم فيها ليست جيدة جدًا ، إلا أنه يمكن استخدامها بالكاد ، ولا يزال من المقبول التعامل مع الطباعة العامة.
الرمز يشبه هذا:
شفرة
تمييز الكود الذي أنتجته ActiPro CodeHighlighter (Freeware) http://www.codehighlighter.com/--> // call printcontrol.execwb (؟ ،؟) لتحقيق وظائف معاينة الطباعة المباشرة والطباعة. (لا يمكن إخفاء بعض المناطق مباشرة عن طريق الطباعة باستخدام طريقة print () التي يوفرها النظام) // المعاينة: ما إذا كان لعرض المعاينة. NULL/FALSE: غير معروض ، TRUE: DISPLAY PRIST PRINTPAGE (معاينة) {try {var content = window.document.body.innerhtml ؛ var oricontent = content ؛ بينما (content.indexof ("{$ printhide}")> = 0) content = content.replace ("{$ printhide}" ، "style = 'display: none'") ؛ if (content.indexof ("id =/" printcontrol/"") <0) content = content+"<object id =/" printControl/"0- height = 0) classid =/"clsid: 8856f961-340a-11d0-a96b-00c04fd705a2/"> </bomust> السمات ، (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) {Alert ("خطأ في تنفيذ البرنامج النصي javascript.") ؛ }} وظيفة printConten (معاينة ، html) {try {var content = html ؛ var oricontent = window.document.body.innerhtml ؛ بينما (content.indexof ("{$ printhide}")> = 0) content = content.replace ("{$ printhide}" ، "style = 'display: none'") ؛ if (content.indexof ("id =/" printControl/"") classid =/"clsid: 8856f961-340a-11d0-a96b-00c04fd705a2/"> </bomust> السمات ، (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) {Alert ("خطأ في تنفيذ البرنامج النصي javascript.") ؛ }}يتم وضع وظيفتين أعلاه في ملف JS. في محتوى الصفحة ، يمكن طباعة محتوى الجزء المحدد عن طريق تطبيق ملف البرنامج النصي واستدعاء الوظيفة المغطاة الأخرى:
<script language = "javaScript"> print (معاينة)
يظهر تأثير الطباعة تقريبًا في الشكل أدناه. إذا كانت الصفحة المطبوعة في صفحة الإطار ، فأنت بحاجة إلى تحديد خيار "طباعة الإطارات المحددة فقط".
لا يتطلب استخدام هذه الطريقة أي عناصر تحكم يتم تثبيتها ، والتي لديها مزايا توافق جيدة. ومع ذلك ، يبدو أن محتوى التقرير أكثر إزعاجًا للتحكم. خاصة بالنسبة لطباعة بعض التقارير ، من الضروري إخراج المحتوى المعقد ، الذي يحتوي أيضًا على عيوب معينة ، ولكن بشكل عام ، إنه أيضًا خيار أفضل.
في وقت لاحق ، عندما كنت بحاجة إلى القيام ببعض الأعمال على إعداد المستند ، لا يمكن القيام بهذا التحكم ، لذلك كنت بحاجة إلى طريقة أو عنصر تحكم يمكن أن يتعامل بشكل أفضل مع الإعداد.
بالصدفة ، وجدت تحكمًا أفضل للطباعة يدعم الطباعة بتنسيقات مختلفة ، وكذلك مجموعة الهوية التي أهتم بها. إنها قوية وسهلة الاستخدام ، وينصح بها للغاية.
عند استخدام عنصر التحكم هذا ، يكون تأثير طباعة التقرير العادي كما يلي:
تتشابه طباعة التقريرين أعلاه في الواقع ، وكلاهما جزء من محتوى HTML ، لكن الأخير يبدو أفضل ويوفر إعدادات وظيفة تقرير كاملة للغاية.
الرمز تقريبًا على النحو التالي.
شفرة
<script language = "javaScript"> print (معاينة) {var text = document.getElementById ("content"). innerhtml ؛ printConten (معاينة ، نص) ؛} </script> <script language = "javaScript"> <scriptx id = "lodop" classid = "clsid: 2105C259-1E0C-4534-8141-A753534CB4CA" width = 0 height = 0> </bomust> <script language = "javaScript"> var lodop = document.getElementByid ("lodop") ؛ // هذا السطر من البيان هو الامتثال لمواصفات DTD checklodop () ؛ </script> <script language = "javaScript" type = "text/javaScript"> function firment () {// print Preview CreateLicensedAta () ؛ lodop.set_show_mode ("endive_in_brows" ، 1) ؛ {// Print Maintenance لضبط موضع المستخدم CreateLicenSedata () ؛ lodop.print_setup () ؛} ؛ تصميم الوظيفة () {// طباعة المحتوى وموضع إعدادات مطور التصميم createlecensedata () ؛ QueryP.Print_design () ؛ تقرير ") ؛ lodop.add_print_htm (20 ، 40 ، 610 ، 900 ، وثيقة.في كثير من الأحيان ، يتم التحكم في المحتوى الذي لا نتحكم فيه بواسطة CSS ، لذلك في بعض الأحيان ، إذا طبعنا جزءًا من HTML بدون هذه الأنماط ، فقد يتغير تنسيق الجدول والخطوط التي تخرج وليست ذات مظهر جيد للغاية. ثم تحتاج إلى نمط HTML.
إذا قمت بتعيين نمط للمحتوى المطبوع ، فستكون الواجهة أفضل بكثير.
رمز ضبط النمط كما يلي.
شفرة
<script language = "javaScript" type = "text/javaScript"> معاينة الوظيفة () {// Print Preview CreateLicensedata () ؛ lodop.set_show_mode ("FeariEw_in_browse" ، 1) ؛ lodop.preview () ؛ "<link type = 'text/css' rel = 'STYLESHEET' HREF = 'http: //www.cnblogs.com/themes/default/style.css'/> <style> <!-table {border: 1 ؛ background-color: #CBCCC} خلفية اللون:#f1f1f3 ؛ padding-left: 5px ؛ الحدود: 1}-> </style> "؛ var strformhtml = strbodystyle +" <body> " + document.getElementByid (" content "). Innerhtml +" </body> ؛ strformhtml) ؛ lodop.preview () ؛} </script>ما سبق هو وظيفة طباعة التقرير العادي لحل طباعة الويب الذي أدخله المحرر. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!