|
Komprimeringsöversikt
Översikt
HotPDF använder flera komprimerings- och dekomprimeringsvägar beroende på om det genererar nytt PDF-innehåll eller läser befintliga streams och bilder från externa filer
Huvudsakliga komprimeringsvägar
- FlateDecode: Används för genererade PDF streams via THotPDF.Compression och backas av zlib-ng i zlib-kompatibelt läge, med 64-bit runtime SIMD dispatch där det finns
- CompressionLevel: THotPDF.CompressionLevel väljer
clNone, clFastest, clDefault eller clMaximum för förbättrade Flate-vägar.
- LZWDecode: Stöds för legacy PDF och TIFF-liknande data via HPDFLZW.pas
- DCT/JPEG: Används för standardiserade JPEG image workflows som hanteras av HotPDF image support och backas av libjpeg-turbo 3.1.90 med NASM SIMD acceleration objects
- JBIG2 and JPEG2000: Tillgängligt för specialiserade image workflows där source format redan använder dessa codecs
Strukturell storleksminskning för PDF 1.5+
För PDF 1.5+-utdata kan HotPDF lägga två ytterligare structural compression paths ovanpå FlateDecode-komprimerade streams. Båda är opt-in och passar naturligt ihop:
- UseXRefStream: Ersätter den textuella cross-reference-tabellen
xref ... trailer med en komprimerad /Type /XRef stream (ISO 32000-1 7.5.8). Minskar xref-overhead 4-10x i stora dokument
- UseObjectStreams: Packar små indirect dictionaries (multi-page documents, annotations, AcroForm widgets, structure-tree elements, Optional Content layers) i container streams
/Type /ObjStm (ISO 32000-1 7.5.7) som refereras via type-2 xref entries. Kräver att UseXRefStream också är på. En 30-page graphics-only smoke krymper från 14502 till 8488 bytes (-41.5%) när de två växlarna kombineras
- Dekomprimering för kopia: DecompressForCopy och
OriginallyCompressed beskriver hur komprimerade källströmmar materialiseras.
Relaterade enheter
- HPDFZLib.pas för FlateDecode och predictor-aware inflate helpers
- HPDFLZW.pas för LZW-dekomprimering
- HPDFJBIG2.pas för stöd för JBIG2-dekodning
- HPDFJpeg2000.pas och HPDFOpenJpeg.pas för JPEG2000-relaterade workflows
Se även
|