Compression Overview

نظرة عامة

يستخدم HotPDF عدة مسارات للضغط وفك الضغط وفقًا لما إذا كان يولد محتوى PDF جديدًا أو يقرأ تدفقات وصورًا موجودة من ملفات خارجية

Main Compression Paths

  • FlateDecode: يستخدم لتدفقات PDF المولدة عبر THotPDF.Compression ويعتمد على zlib-ng في وضع التوافق مع zlib، مع SIMD dispatch وقت التشغيل على 64-bit حيث يتوفر
  • CompressionLevel: يحدد THotPDF.CompressionLevel القيم clNone أو clFastest أو clDefault أو clMaximum لمسارات Flate المحسنة.
  • LZWDecode: مدعوم لبيانات PDF القديمة وبيانات نمط TIFF عبر HPDFLZW.pas
  • DCT/JPEG: يستخدم لمسارات عمل صور JPEG القياسية التي يعالجها دعم الصور في HotPDF، ويعتمد على libjpeg-turbo 3.1.90 مع كائنات تسريع NASM SIMD
  • JBIG2 وJPEG2000: متاحان لمسارات عمل الصور المتخصصة عندما يستخدم تنسيق المصدر هذه codecs أصلًا

PDF 1.5+ structural size reduction

لإخراج PDF 1.5+ يستطيع HotPDF إضافة مساري ضغط بنيويين فوق التدفقات المضغوطة بـ FlateDecode. كلاهما اختياري ويتكاملان طبيعيًا

  • UseXRefStream: Replace the textual xref ... trailer cross-reference table with a compressed /Type /XRef stream (ISO 32000-1 7.5.8). Cuts xref overhead by 4-10x on large documents.
  • UseObjectStreams: يحزم القواميس indirect الصغيرة، مثل المستندات متعددة الصفحات والتعليقات وAcroForm widgets وعناصر structure-tree وOptional Content layers، داخل تدفقات container من نوع /Type /ObjStm وفق ISO 32000-1 7.5.7 ويشار إليها عبر type-2 xref entries. يتطلب أيضًا تفعيل UseXRefStream. ينخفض اختبار smoke رسومي من 30 صفحة من 14502 إلى 8488 بايت (-41.5%) عند جمع الخيارين
  • فك الضغط للنسخ: تصف DecompressForCopy و OriginallyCompressed كيفية تجسيد مسارات نسخ المستندات المحملة للتدفقات المصدرية المضغوطة.

Related Units

  • HPDFZLib.pas for FlateDecode and predictor-aware inflate helpers
  • HPDFLZW.pas for LZW decompression
  • HPDFJBIG2.pas for JBIG2 decoding support
  • HPDFJpeg2000.pas and HPDFOpenJpeg.pas for JPEG2000-related workflows

انظر أيضا