Compression Panoramica Compression Panoramica Compression Panoramica Compression Panoramica Compression Panoramica Compression Panoramica Compression Panoramica

Panoramica della compressione

Panoramica

HotPDF usa diversi percorsi di compressione e decompressione a seconda che stia generando nuovo contenuto PDF o leggendo stream e immagini esistenti da file esterni.

Principali percorsi di compressione

  • FlateDecode: Usato per gli stream PDF generati tramite THotPDF.Compression e basato su zlib-ng in modalità zlib-compatibile, con dispatch SIMD a runtime a 64 bit dove disponibile; i flussi ad alto rapporto su stream caricati possono aggiungere un pass Zopfli con budget selezionato solo quando è più piccolo del miglior risultato zlib
  • CompressionLevel: THotPDF.CompressionLevel selects clNone, clFastest, clDefault, o clMaximum for enhanced Flate paths.
  • LZWDecode: Supportato per dati legacy PDF e in stile TIFF tramite HPDFLZW.pas
  • DCT/JPEG: Usato per i flussi immagine JPEG standard gestiti dal supporto immagini di HotPDF e basato su libjpeg-turbo 3.1.90 con oggetti di accelerazione SIMD NASM
  • JBIG2 e JPEG2000: Disponibile per flussi immagine specializzati dove il formato sorgente usa già quei codec

riduzione strutturale delle dimensioni PDF 1.5+

For PDF 1.5+ output HotPDF can layer two additional structural compression paths on top of FlateDecode-compressed streams. Both are opt-in and pair naturally:

  • UseXRefStream: Sostituisce la tabella testuale xref ... trailer di riferimenti incrociato con uno /Type /XRef stream (ISO 32000-1 7.5.8). Cuts xref overhead by 4-10x on large documents.
  • UseObjectStreams: Pack small indirect dictionaries (multi-page documents, annotations, AcroForm widgets, structure-tree elements, Optional Content layers) into /Type /ObjStm container streams (ISO 32000-1 7.5.7) referenced through type-2 xref entries. Requires UseXRefStream to also be on. A 30-page graphics-only smoke shrinks from 14502 to 8488 bytes (-41.5%) with the two toggles combined.
  • Decompressione in copia: DecompressForCopy e OriginallyCompressed descrivono come i percorsi di copia del documento caricato materializzano gli stream sorgente compressi.

Unità correlate

  • HPDFZLib.pas per FlateDecode e helper inflate consapevoli dei predittori
  • HPDFLZW.pas per la decompressione LZW
  • HPDFJBIG2.pas, HPDFJBIG2Codec.pas e HPDFJBIG2Enc.pas per la codifica e la decodifica JBIG2
  • HPDFJpeg2000.pas e HPDFOpenJpeg.pas per i flussi correlati a JPEG2000

Vedi anche: