Compression Overview

Genel bakış

HotPDF; yeni PDF içeriği üretirken mi yoksa var olan stream'leri ve görüntüleri harici dosyalardan okurken mi çalıştığına bağlı olarak birkaç sıkıştırma ve sıkıştırmayı açma yolu kullanır.

Ana sıkıştırma yolları

  • FlateDecode: Üretilen PDF stream'leri için THotPDF.Compression üzerinden kullanılır; zlib uyumlu kipte zlib-ng tarafından desteklenir ve available olduğunda 64 bitlik çalışma zamanı SIMD yönlendirmesi sunar. Yüklenen stream'li yüksek oranlı iş akışları, en iyi zlib sonucundan daha küçük olduğunda seçilen bütçeli bir Zopfli geçişi ekleyebilir
  • CompressionLevel: THotPDF.CompressionLevel, gelişmiş Flate yolları için clNone, clFastest, clDefault veya clMaximum seçer.
  • LZWDecode: HPDFLZW.pas üzerinden eski PDF ve TIFF tarzı veri için desteklenir
  • DCT/JPEG: HotPDF görüntü desteğinin işlediği standart JPEG görüntü iş akışları için kullanılır; NASM SIMD hızlandırma nesneleriyle libjpeg-turbo 3.1.90 tarafından desteklenir
  • JBIG2 ve JPEG2000: Kaynak biçimin o codec'leri hâlihazırda kullandığı özel görüntü iş akışları için kullanılabilir

PDF 1.5+ yapısal boyut küçültme

PDF 1.5+ çıktıda HotPDF, FlateDecode ile sıkıştırılmış stream'lerin üzerine iki ek yapısal sıkıştırma yolu katmanlayabilir. İkisi de isteğe bağlıdır ve doğal olarak birbirini tamamlar:

  • UseXRefStream: Metinsel xref ... trailer çapraz başvuru tablosunu, sıkıştırılmış bir /Type /XRef stream'iyle değiştirir (ISO 32000-1 7.5.8). Büyük belgelerde xref ek yükünü 4-10 kat keser
  • UseObjectStreams: Küçük dolaylı sözlükleri (çok sayfalı belgeler, ek açıklamalar, AcroForm widget'ları, yapı ağacı öğeleri, Optional Content katmanları), type-2 xref girdileriyle referanslanan /Type /ObjStm kapsayıcı stream'lerine (ISO 32000-1 7.5.7) paketler. UseXRefStream'in de açık olmasını gerektirir. İki anahtar birleşince yalnızca grafik içeren 30 sayfalık bir duman testi 14502'den 8488 bayta küçülür (-%41,5)
  • Kopya sıkıştırmasını açma: DecompressForCopy ve OriginallyCompressed, yüklenen belge kopya yollarının sıkıştırılmış kaynak stream'lerini nasıl somutlaştırdığını açıklar.

İlgili birimler

  • FlateDecode ve öngörücü duyarlı inflate yardımcıları için HPDFZLib.pas
  • LZW çözme için HPDFLZW.pas
  • JBIG2 kodlama ve çözme için HPDFJBIG2.pas, HPDFJBIG2Codec.pas ve HPDFJBIG2Enc.pas
  • JPEG2000 ile ilgili iş akışları için HPDFJpeg2000.pas ve HPDFOpenJpeg.pas

Ayrıca bakın