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