|
Compression Overview
Visão geral
O HotPDF usa vários caminhos de compressão e descompressão, dependendo de estar gerando novo conteúdo PDF ou lendo streams e imagens existentes de arquivos externos.
Main Compression Paths
- FlateDecode: Usado para streams PDF gerados por meio de THotPDF.Compression e respaldado pelo zlib-ng em modo compatível com zlib, com despacho SIMD em runtime de 64 bits quando disponível; fluxos de alta razão de streams carregados podem adicionar uma passada de Zopfli com orçamento, selecionada apenas quando menor que o melhor resultado do zlib
- CompressionLevel: THotPDF.CompressionLevel seleciona
clNone, clFastest, clDefault ou clMaximum para os caminhos aprimorados de Flate.
- LZWDecode: Suportado para dados legados de PDF e estilo TIFF por meio de HPDFLZW.pas
- DCT/JPEG: Usado para fluxos de imagens JPEG padrão tratados pelo suporte a imagens do HotPDF e respaldado pela libjpeg-turbo 3.1.90 com objetos de aceleração NASM SIMD
- JBIG2 and JPEG2000: Disponível para fluxos de imagem especializados em que o formato de origem já usa esses codecs
Redução estrutural de tamanho em PDF 1.5+
Para saída PDF 1.5+ o HotPDF pode sobrepor dois caminhos estruturais adicionais de compressão sobre streams comprimidos com FlateDecode. Ambos são opt-in e se combinam naturalmente:
- UseXRefStream: Substitui a tabela textual de cross-references
xref ... trailer por um stream comprimido /Type /XRef (ISO 32000-1 7.5.8). Corta a sobrecarga de xref em 4-10x em documentos grandes.
- UseObjectStreams: Empacota dicionários indiretos pequenos (documentos multi-página, anotações, widgets AcroForm, elementos de árvore de estrutura, camadas de Optional Content) em streams de contêiner
/Type /ObjStm (ISO 32000-1 7.5.7) referenciados por entradas type-2 de xref. Exige que UseXRefStream também esteja ligado. Um smoke de 30 páginas só de gráficos encolhe de 14502 para 8488 bytes (-41,5%) com os dois interruptores combinados.
- Copy decompression: DecompressForCopy e
OriginallyCompressed descrevem como os caminhos de cópia de documentos carregados materializam streams de origem comprimidos.
Related Units
- HPDFZLib.pas para FlateDecode e helpers de inflate conscientes de predictors
- HPDFLZW.pas para descompressão LZW
- HPDFJBIG2.pas, HPDFJBIG2Codec.pas e HPDFJBIG2Enc.pas para codificação e decodificação JBIG2
- HPDFJpeg2000.pas e HPDFOpenJpeg.pas para fluxos relacionados a JPEG2000
See Also
|