Ikhtisar Kompresi

Ikhtisar

HotPDF menggunakan beberapa jalur kompresi dan dekompresi tergantung pada apakah ia sedang membuat konten PDF baru atau membaca stream dan gambar yang sudah ada dari file eksternal

Jalur kompresi utama

  • FlateDecode: Dipakai untuk stream PDF yang dihasilkan melalui THotPDF.Compression dan didukung oleh zlib-ng dalam mode kompatibel zlib, dengan dispatch SIMD runtime 64-bit bila tersedia
  • CompressionLevel: THotPDF.CompressionLevel memilih clNone, clFastest, clDefault, atau clMaximum untuk jalur Flate yang ditingkatkan
  • LZWDecode: Didukung untuk data PDF lawas dan bergaya TIFF melalui HPDFLZW.pas
  • DCT/JPEG: Dipakai untuk alur gambar JPEG standar yang ditangani dukungan gambar HotPDF dan didukung libjpeg-turbo 3.1.90 dengan objek akselerasi SIMD NASM
  • JBIG2 and JPEG2000: Tersedia untuk alur gambar khusus ketika format sumber memang sudah memakai codec tersebut

Pengurangan ukuran struktural PDF 1.5+

Untuk output PDF 1.5+, HotPDF dapat menambahkan dua jalur kompresi struktural tambahan di atas stream yang telah dikompresi FlateDecode. Keduanya opsional dan cocok dipakai bersama

  • UseXRefStream: Mengganti tabel cross-reference tekstual xref ... trailer dengan stream /Type /XRef terkompresi (ISO 32000-1 7.5.8). Mengurangi overhead xref sebesar 4-10x pada dokumen besar
  • UseObjectStreams: Mengemas dictionary indirect kecil (dokumen multi-halaman, anotasi, widget AcroForm, elemen structure-tree, lapisan Optional Content) ke dalam stream wadah /Type /ObjStm (ISO 32000-1 7.5.7) yang dirujuk lewat entri xref tipe 2. Memerlukan UseXRefStream juga aktif. Smoke 30 halaman hanya grafis menyusut dari 14502 menjadi 8488 byte (-41.5%) saat dua toggle dipakai bersama
  • Dekompresi salinan: DecompressForCopy dan OriginallyCompressed menjelaskan bagaimana jalur salinan dokumen yang dimuat mematerialkan stream sumber terkompresi

Unit terkait

  • HPDFZLib.pas untuk FlateDecode dan helper inflate yang memahami predictor
  • HPDFLZW.pas untuk dekompresi LZW
  • HPDFJBIG2.pas untuk dukungan decoding JBIG2
  • HPDFJpeg2000.pas dan HPDFOpenJpeg.pas untuk alur kerja terkait JPEG2000

Lihat juga