Compression Resumen

Descripción general

HotPDF utiliza varias rutas de compresión y descompresión según esté generando nuevo contenido PDF o leyendo flujos e imágenes existentes desde archivos externos

Main Compression Paths

  • FlateDecode: usado para flujos PDF generados mediante THotPDF.Compression y respaldado por zlib-ng en modo compatible con zlib, con despacho SIMD de 64 bits en tiempo de ejecución cuando está disponible
  • CompressionLevel: THotPDF.CompressionLevel selecciona clNone, clFastest, clDefault o clMaximum para rutas Flate mejoradas.
  • LZWDecode: admitido para datos PDF heredados y datos de estilo TIFF mediante HPDFLZW.pas
  • DCT/JPEG: usado para flujos de imagen JPEG estándar manejados por el soporte de imágenes de HotPDF y respaldado por libjpeg-turbo 3.1.90 con objetos de aceleración NASM SIMD
  • JBIG2 and JPEG2000: disponible para flujos de imagen especializados donde el formato de origen ya usa esos códecs

PDF 1.5+ structural size reduction

Para salida PDF 1.5+, HotPDF puede superponer dos rutas adicionales de compresión estructural sobre los flujos comprimidos con FlateDecode. Ambas son opcionales y combinan de forma natural:

  • UseXRefStream: Replace the textual xref ... trailer cross-reference table with a compressed /Type /XRef stream (ISO 32000-1 7.5.8). Cuts xref overhead by 4-10x on large documents.
  • UseObjectStreams: empaqueta diccionarios indirectos pequeños (documentos multipágina, anotaciones, widgets AcroForm, elementos de árbol de estructura, capas Optional Content) en flujos contenedores /Type /ObjStm (ISO 32000-1 7.5.7) referenciados mediante entradas xref de tipo 2. Requiere que UseXRefStream también esté activado. Una prueba smoke de 30 páginas solo con gráficos se reduce de 14502 a 8488 bytes (-41.5%) con ambos conmutadores combinados
  • Descompresión para copia: DecompressForCopy y OriginallyCompressed describen cómo las rutas de copia materializan flujos fuente comprimidos.

Related Units

  • HPDFZLib.pas for FlateDecode and predictor-aware inflate helpers
  • HPDFLZW.pas for LZW decompression
  • HPDFJBIG2.pas for JBIG2 decoding support
  • HPDFJpeg2000.pas and HPDFOpenJpeg.pas for JPEG2000-related workflows

Véase también