نظرًا للحاجة إلى العمل ، قمت مؤخرًا بدراسة وظيفة تحويل HTML إلى PDF. التكنولوجيا الرئيسية لـ HTML إلى PDF هي كيفية التعامل مع نمط CSS المعقد في صفحة الويب.
وضع العميل : اتصل ببرنامج العميل في مكتب الاستقبال واستخدم وظيفة برنامج العميل لإكمال تحويل ملف PDF. أداة الاختبار هذه هي: wkhtmltopdf و phantomjs. Java JAR Package Solution Mode: تحليل رمز Java CSS نمط ، ترجمة ملف HTML هو ملف PDF. فئة الاختبار هذه هي: Itext ، Flying Sauser ، PD4ML. JS Front -end Mode: JS Front -end Analysis HTML هو ملف PDF.بالنسبة للحلول التي تم تقديمها على الإنترنت هذه المرة ، تجمع بين احتياجات المشاريع الفعلية ، وقم بإجراء التحليل التالي من حيث الأداء والوظيفة.
1. مقدمة صفحة الاختبارمن خلال عرض إدخال كل حالة تحويل على الإنترنت ، ونمط HTML البسيط ، يتم دعم نمط الجدول العام بواسطة المخططات أعلاه عند إجراء تحويل ملف PDF. ومع ذلك ، بالنظر إلى احتياجات العمل الفعلي ، يستخدم هذا الاختبار بشكل خاص نمط CSS في Bootstrap (V 3.3.6) ، وتطبق الصفحة أيضًا الميزات الجديدة لـ CSS3. بناءً على هذه الميزة الجديدة ، اكتب صفحة HTML ثابتة.
2.WKHTMLTOPDF اختبارWKHTMLTOPDF هي أداة تم تطويرها باستخدام محرك عرض صفحة الويب WebKit لتحويل HTML إلى PDF ، والتي يمكن دمجها مع لغة نصية متعددة لتحويل المستندات. عنوان الموقع الرسمي http://wkhtmltopdf.org/
الميزات الفنية: يمكن لـ WKHTMLTOPDF تحويل صفحة الويب مباشرة في المتصفح إلى PDF. عند استخدام رمز Java ، يمكنك الاتصال بتعليمات CMD لإكمال وظيفة صفحة الويب إلى PDF.
اختبار الوظيفة: أدخل تعليمات الاختبار مباشرة في CMD لعرض تقدم المعالجة.
المعلمة الأولى: المسار الذي يقع فيه wkhtmltopdf.exe
المعلمة الثانية: يجب تحويلها إلى صفحة HTML من PDF
المعلمة الثالثة: مسار ملف PDF واسم الملف
تأثير تصدير الصفحة كما يلي:
وصف الاختبار:
لقد وجد أن WKHTMLTOPDF لديه دعم أفضل لأسلوب CSS في BootStap ككل. الميزات الجديدة لـ CSS3 ليست مدعومة جيدًا للصور المستديرة. ستفشل بعض أنماط الصفحات. بالنسبة لعرض الرسم البياني ، سيقوم برنامج التصدير الخاص بمخطط Everyart بالإبلاغ عن خطأ ولا يدعمه. ومع ذلك ، لدى ECHART مخططًا تم تحويله إلى واجهة صورة ، والتي يمكن تصديرها إلى PDF عن طريق الحصول على عنوان الصورة.
3. اختبار phantomjsPhantomjs هو متصفح مقطوع الرأس يعتمد على kernel webkit ، أي أنه لا توجد واجهة واجهة المستخدم ، أي أنها متصفح ، ولكنها نقرة ، تحول الصفحة ، وما إلى ذلك. للعمليات ذات الصلة بتصميم الإجراء. يوفر واجهة JavaScript API ، أي من خلال كتابة برنامج JS ، يمكنك التفاعل مباشرة مع kernel WebKit. يمكن تطوير C/C ++ بشكل أفضل على أساس تطوير WebKit. كما يوفر التثبيت واستخدام حزم لتثبيتات OS المختلفة مثل Windows و Linux و Mac ، أي يمكنه تطوير وجمع المشاريع أو اختبار المشروع التلقائي على منصات مختلفة. عنوان الموقع الرسمي http://phantomjs.org/
يمكن استخدام Phantomjs كتحليل صفحة الويب. الاختبار في CMD كما يلي:
يتم توجيه صفحة الاختبار على النحو التالي:
وصف الاختبار:
وقد وجد أن Phantomjs يدعم أسلوب BootStap. الميزات الجديدة لـ CSS3 ليست مدعومة جيدًا للصور المستديرة. ستفشل بعض أنماط الصفحات. بالنسبة لشاشة Echart Chart ، يمكن أيضًا تصديرها مباشرة. التأثير على النحو التالي:
3.ITEXT و FLYING SIASERينفذ itext HTML2PDF ، السرعة السريعة ، قدرة تصحيح الخطأ ، ويدعم الصينية (تتطلب HTML استخدام ترميز Unicode) ، لكن الصين تدعم خطًا صينيًا مفتوحًا. يقوم Flying Sauser بتنفيذ HTML2PDF ، قدرة تصحيح الخطأ الضعيفة ، يدعم مجموعة متنوعة من الخطوط الصينية (لا يمكن التعرف على بعض الأنماط) ، المصدر المفتوح.
الميزات الفنية: تحليل ومعالجة نمط HTML CSS استنادًا إلى برمجة Java ، الدعم حاليًا فقط للصفحات والأساليب البسيطة. بالنسبة لأسلوب CSS3 وتوافق نمط CSS المعقد ، فإن CSS3 ضعيف للغاية. عندما يكون محتوى الصفحة طويلًا ، يكون وقت المعالجة بطيئًا. عنوان المرجع: https://code.google.com/archive/p/flying-saucer/
نتائج الاختبار: لا يمكن أن تخرج صفحة اختبار هذه التجربة.
وصف الاختبار:
لقد وجد أن المشروعين المصدرين مفتوحين من Itext و Sauser لا يتوافقان مع CSS3. بالنسبة للجداول البسيطة ، تتضمن صادرات البيانات الإحصائية والتقنيات المحدثة جدول Bootstrap وتصدير جدول DataGrid Easyui. لا ينصح هذا المخطط الذي تم تقديمه عبر الإنترنت.
4.pd4ml اختبارPD4ML هي مكتبة فئة من Java النقي. موقع مرجع: http://www.pd4ml.com
ميزة البرنامج هي:
إن علامات HTML المدعومة وسمات CSS ممتلئة نسبيًا ، ويمكن استخدام تشويه التحويل نسبيًا. إن التسامح مع علامات ملف الويب وأخطاء قواعد CSS أفضل. بدون تحكم إضافي ، ادعم إخراج تحول الصورة.
عيب البرنامج هو:
بدون مفتوح المصدر ، أحدث إصدار تجريبي ، بعد التنزيل والاختبار ، وجد أن التحويل الصيني غير مدعوم. يجب عليك شراء نسخة تجارية. (فيما يلي حفرة للغاية. لا يمكن أن تتوفر اختبار المشكلات المشوهة ، وقد وجد أنه غير مدعوم لاحقًا). يمكن لبعض الإصدارات القديمة بعد التكسير حل المشكلة المشوهة ، لكن نمط CSS المدعوم لم يكتمل.
نتائج الاختبار:
وصف الاختبار:
النسخة الجديدة من الصينيين تشوه ، ولكنها تدعم بعض أنماط CSS. بعد decipline من الإصدار القديم ، يكون توافق الأسلوب للواجهة ضعيفًا ، ودعم bootsrtap منخفض. بالنظر إلى أنه برنامج شحن ، ولا يمكن استخدام الأداء إلى الصفحات العادية.
5.html2canvas اختبارHTML2CANVAS هي مكتبة جافا سكريبت جيدة. يستخدم HTML2CANVAS معلومات نمط DOM و Element الخاصة بالصفحة وتقدمها إلى صورة قماش لتحقيق وظيفة لقطة الشاشة. لا يحتاج إلى أي عرض من الخادم. عندما لا يدعم المتصفح قماشًا ، سيتم استخدام FlashCanvas أو Explorercanvas بدلاً من ذلك. يمكن للمتصفحات التالية دعم البرنامج النصي: Firefox 3.5+ ، Google Chrome ، الإصدار الجديد من Opera ، IE9 أعلاه المتصفح. نظرًا لأن كل متصفح يجعل الصفحة طرقًا مختلفة ، فإن الصور التي تم إنشاؤها ليست هي نفسها. على الرغم من أنه لا يزال في مرحلة التطوير ، إلا أنه لا يزال يستحق التطلع إليه. يعتمد هذا القابس -على سد jQuery -in ، يوصى باستخدام أحدث إصدار.
لا تدعم الصور المتقاطعة -ولا يمكنك استخدام جزء من قابس المتصفح -دون دعم صور SVG ، لا تدعم الفلاش ، لا تدعم IFREAM (يمكن تعديل الكود الأصلي لـ JS ، دعم IFREAM)
عند استخدام HTML2Canvas لهذا الوقت ، وجدت أن العديد من صفحات العناصر يمكن أن تأخذ لقطات الشاشة بشكل طبيعي ، بما في ذلك مخططات ECHART. فقط الميزات الجديدة لكمية صغيرة من CSS3 غير مدعومة. تأثير لقطة الشاشة أفضل. ومع ذلك ، عند الاختبار ، تم العثور على مشكلة قاتلة. بعد تحليل التتبع ، وجد أن وظيفة JS لـ HTML2Canvas للتعامل مع نمط CSS الذي لا يمكن التعرف عليه. خاصة بالنسبة للوحدات النمطية المخفية والمعروضة ، فإنه يدعم غير ودي.
تأثير لقطة الشاشة كما يلي:
ومع ذلك ، فإن CSS للصفحة الأصلية تفشل ، وظهرت الصفحة غير طبيعية ، والأناقة المخفية ، وشاشة النمط المعروضة هي فوضوية.
وصف الاختبار:
وقد وجد أن HTML2Canvas يدعم أسلوب BootStap بشكل أفضل. الميزات الجديدة لـ CSS3 ليست مدعومة جيدًا للصور المستديرة. ميزةها الرئيسية هي الواجهة الأمامية الخفيفة.
6. ملخصمن خلال اختبار الحالات المذكورة أعلاه ، فإن معظم التحولات HTML شائعة الاستخدام إلى PDF تم تقديمها عبر الإنترنت. من خلال تحليل مبدأ هذه الأساليب ، يمكن الحصول على الاستنتاجات التالية:
يتم تحويل صفحة الويب HTML بالكامل إلى PDF ، وجميع الحلول غير كافية. إذا كانت صفحة صفحة النماذج فقط ، فإن نمط HTML لا يعتمد سمة CSS3 قدر الإمكان. يتطور نمط HTML الأمامي بسرعة ، فإن الميزات الجديدة لـ CSS3 لها تأثيرات جيدة ، ويحدد CSS قواعد جديدة وقواعد. لا يمكن أن تكون فئات تحويل Java مثل Itext و Flying Sauser متوافقة مع هذه التغييرات على الإطلاق ، لأنها لا تستطيع كتابة وظائف التحويل في الوقت المناسب ، وتوقف هذه المشاريع المصدر القديمة. جوهر PD4ML هو أيضًا أسلوب معالجة Java. لكنه أيضًا لا يدعم عددًا صغيرًا من أنماط CSS. والمشكلة المشوهة الصينية غير مريحة. بالنسبة إلى وضع متصفح العميل ، فإن Phantomjs و WKHTMLTOPDF أكثر قوة. وضع لقطة الشاشة لـ HTML2CANVAS مرنة وهي أداة لقطة شاشة خفيفة الوزن. في الوقت الحاضر ، بعض الوظائف غير مكتملة ، لكن التأثير الكلي ليس سيئًا. لقطة الشاشة إلى PDF.
ما سبق هو جميع محتويات هذه المقالة.