|
نظرة عامة على الضغط
ملاحظة
تستخدم HotPDF عدة مسارات للضغط وفك الضغط تبعًا لما إذا كانت تُنشئ محتوى PDF جديدًا أو تقرأ تدفقات وصورًا موجودة من ملفات خارجية
ملاحظة
- FlateDecode: يُستخدَم لتدفقات PDF المُنشَأة عبر THotPDF.Compression ويعتمد على zlib-ng في وضع التوافق مع zlib، مع توزيع SIMD وقت التشغيل على 64 بت حيثما توفّر؛ يمكن لسير عمل التدفقات المحمَّلة ذات النسبة العالية إضافة مسار Zopfli محدود الميزانية يُختار فقط عندما يكون أصغر من أفضل نتيجة zlib
- CompressionLevel: تختار THotPDF.CompressionLevel بين
clNone وclFastest وclDefault أو clMaximum لمسارات Flate المحسَّنة
- LZWDecode: مدعوم لبيانات PDF القديمة وبيانات بنمط TIFF عبر HPDFLZW.pas
- DCT/JPEG: يُستخدم لسير عمل صور JPEG القياسية التي يتعامل معها دعم الصور في HotPDF، ويعتمد على libjpeg-turbo 3.1.90 مع كائنات تسريع NASM SIMD
- DCT/JPEG: يُستخدم لسير عمل صور JPEG القياسية التي يتعامل معها دعم الصور في HotPDF، ويعتمد على libjpeg-turbo 3.1.90 مع كائنات تسريع NASM SIMD
ملاحظة
بالنسبة لمخرجات PDF 1.5 وما بعده، يمكن لـ HotPDF إضافة مسارَي ضغط بنيوي إضافيين فوق streams المضغوطة بـ FlateDecode. كلاهما اختياري ويعمل معًا بشكل طبيعي:
- UseXRefStream: يستبدل جدول المراجع المتقاطعة النصي
xref ... trailer بتدفق /Type /XRef مضغوط (ISO 32000-1 7.5.8). يقلّص تكلفة xref بمقدار 4 إلى 10 أضعاف في المستندات الكبيرة
- UseObjectStreams: يحزم القواميس غير المباشرة الصغيرة (المستندات متعددة الصفحات، التعليقات التوضيحية، عناصر AcroForm، عناصر شجرة البنية، طبقات المحتوى الاختياري) داخل تدفقات حاوية
/Type /ObjStm (ISO 32000-1 7.5.7) يُشار إليها عبر مدخلات xref من النوع 2. يتطلب تفعيل UseXRefStream أيضًا. ينكمش اختبار سريع من 30 صفحة رسومية فقط من 14502 إلى 8488 بايت (-41.5%) عند الجمع بين الخيارَين
- فك ضغط النسخ: يصف كل من DecompressForCopy و
OriginallyCompressed كيفية تجسيد مسارات نسخ المستندات المحمَّلة لتدفقات المصدر المضغوطة
ملاحظة
- HPDFZLib.pas لـ FlateDecode ومساعدات inflate الواعية بالمتنبئ (predictor)
- HPDFLZW.pas لفك ضغط LZW
- HPDFJBIG2.pas وHPDFJBIG2Codec.pas وHPDFJBIG2Enc.pas لترميز JBIG2 وفك ترميزه
- HPDFJpeg2000.pas وHPDFOpenJpeg.pas لمسارات عمل JPEG2000
ملاحظة
|