Resource and Image Optimisation
O HotPDF pode reduzir o tamanho do documento carregado sem alterar a semântica de estado gráfico das páginas ou quebrar recursos herdados e aparências de anotações
Consolidação de conteúdo e recursos
Imagens inline repetidas podem virar XObjects de imagem compartilhados depois que os limites de ocorrência e payload são atingidos
Nomes de recursos de página não usados são removidos de forma conservadora após escanear conteúdo de páginas, Form XObjects aninhados e appearance streams de anotações
Streams de conteúdo de página compatíveis são decodificados, unidos com fronteiras seguras de tokens e normalizados em um único stream Flate
Form XObjects e fontes embutidas passam por deduplicação a partir de conteúdo decodificado canônico e grafos de recursos canônicos recursivos, com prefixos de subset de fontes compatíveis normalizados durante a comparação
Subsetting de fontes carregadas
SubsetLoadedFonts rastreia códigos de caracteres pelo conteúdo de páginas, Form XObjects aninhados e appearance streams de anotações, resolve cada código pela codificação de fonte do PDF e pelo mapeamento CID e retém apenas os programas de glifos alcançáveis
Dicionários de fontes, mapas CID, larguras e dados ToUnicode mantêm seus identificadores existentes, porque o subsetting TrueType, CFF e Type 1 preserva IDs ou nomes de glifos; programas embutidos compartilhados agregam o uso de todo dicionário de fonte compatível antes de uma única reescrita
Dependências de contorno de TrueType compostos e COLR v0/v1 são fechadas recursivamente enquanto tabelas de cor, bitmap, variação e shaping permanecem intactas; programas Type 1 PFB, binário dividido e PFA hex preservam CharStrings usados e substituem entradas não usadas por programas endchar válidos de mesmo comprimento
A operação pula um programa de fonte inteiro quando qualquer código usado não pode ser mapeado, adota apenas um candidato raw ou Flate menor e recusa documentos assinados por padrão, de modo que chamadores precisam explicitamente aceitar a invalidação da assinatura
Políticas de imagem
A recompressão JPEG seleciona espaços de cor elegíveis, qualidade de saída e economia mínima de bytes
A otimização JPEG 2000 suporta perfis lossless e visualmente lossless, tiles opcionais e todas as cinco ordens de progressão por meio de um perfil explícito não desativado
A recompressão de custo visual avalia tentativas limitadas de qualidade JPEG ou JPEG 2000 contra a origem decodificada, rejeita candidatos fora dos limites de erro perceptual ou de economia mínima e seleciona a menor pontuação ponderada de erro visual e custo de bytes com desempate determinístico
Dados globais JBIG2 são compartilhados apenas quando os bytes exatos do segmento global decodificado coincidem sob jbspExactGlobalsOnly
O downsampling por DPI efetivo segue matrizes de página e Forms aninhados, decodifica pixels de origem com gestão de cor e reamostra soft masks junto com as imagens às quais pertencem
A conversão de cor na reescrita de imagens converte entradas ICCBased, CalGray e CalRGB suportadas para RGB calibrado, enquanto entradas calibradas não suportadas permanecem intactas em vez de serem convertidas para RGB de processo
DownsampleLoadedImages redimensiona imagens Separation ou DeviceN de 8 bits raw, Flate, LZW, ASCII e RunLength suportadas diretamente no espaço de componentes, preservando o grafo exato de espaços de cor, tint transform, colorantes, faixas de /Decode e semântica de overprint
Imagens spot DCT, JPX, JBIG2 e CCITT permanecem inalteradas quando o codec delas não pode expor as amostras originais das chapas
Use loaded-page colour rewrite quando a saída exigida for um espaço de processo Gray, RGB ou CMYK uniforme entre pintura vetorial, imagens, padrões, shadings, transparência e recursos ICC
Object streams adaptativos
O empacotamento em object streams pode limitar o tamanho dos membros, os bytes do contêiner alvo e a contagem de membros, preservando a localidade de números de objeto e excluindo objetos dirty com probabilidade de mudar de novo
Habilitar o empacotamento adaptativo também requisita a versão de PDF exigida, xref stream e reescrita completa
Primary APIs
THotPDF.ExternalizeRepeatedInlineImagesTHotPDF.RemoveUnusedLoadedPageResourcesTHotPDF.CoalesceLoadedPageContentStreamsTHotPDF.DeduplicateLoadedFormXObjectsTHotPDF.DeduplicateLoadedEmbeddedFontsTHotPDF.SubsetLoadedFontsTHotPDF.RecompressLoadedJPEGImagesTHotPDF.OptimizeLoadedJPEG2000ImagesTHotPDF.OptimizeLoadedImagesByVisualCostTHotPDF.ShareLoadedJBIG2GlobalsTHotPDF.DownsampleLoadedImagesTHotPDF.RewriteLoadedPageColorsTHotPDF.ConfigureAdaptiveObjectStreamPacking