|
Sıkıştırma genel bakışı
Genel bakış
HotPDF, yeni PDF content üretmesine veya harici dosyalardan mevcut streams ve images okumasına bağlı olarak birkaç compression ve decompression path kullanır
Ana sıkıştırma yolları
- FlateDecode: THotPDF.Compression üzerinden üretilen PDF streams için kullanılır ve zlib-compatible mode içinde zlib-ng tarafından, varsa 64-bit runtime SIMD dispatch ile desteklenir
- CompressionLevel: THotPDF.CompressionLevel gelişmiş Flate yolları için
clNone, clFastest, clDefault veya clMaximum seçer.
- LZWDecode: HPDFLZW.pas üzerinden legacy PDF ve TIFF-style data için desteklenir
- DCT/JPEG: HotPDF image support tarafından işlenen standard JPEG image workflows için kullanılır ve NASM SIMD acceleration objects ile libjpeg-turbo 3.1.90 tarafından desteklenir
- JBIG2 and JPEG2000: Source format zaten bu codecs öğelerini kullandığında specialized image workflows için kullanılabilir
PDF 1.5+ yapısal boyut azaltma
PDF 1.5+ output için HotPDF, FlateDecode-compressed streams üzerine iki ek structural compression path katmanı ekleyebilir. İkisi de opt-in şeklindedir ve doğal olarak birlikte kullanılır:
- UseXRefStream: Metinsel
xref ... trailer cross-reference table yerine compressed /Type /XRef stream (ISO 32000-1 7.5.8) yazar. Büyük documents üzerinde xref overhead değerini 4-10x azaltır
- UseObjectStreams: Küçük indirect dictionaries öğelerini (multi-page documents, annotations, AcroForm widgets, structure-tree elements, Optional Content layers) type-2 xref entries üzerinden referans verilen
/Type /ObjStm container streams (ISO 32000-1 7.5.7) içine paketler. UseXRefStream öğesinin de açık olmasını gerektirir. İki toggle birlikte kullanıldığında 30-page graphics-only smoke 14502 bytes değerinden 8488 bytes değerine (-41.5%) düşer
- Kopya için açma: DecompressForCopy ve
OriginallyCompressed sıkıştırılmış kaynak akışlarının nasıl somutlaştırıldığını açıklar.
İlgili units
- FlateDecode ve predictor-aware inflate helpers için HPDFZLib.pas
- LZW decompression için HPDFLZW.pas
- JBIG2 decoding support için HPDFJBIG2.pas
- JPEG2000-related workflows için HPDFJpeg2000.pas ve HPDFOpenJpeg.pas
Ayrıca bkz.
|