PurgeUnusedResources
Manipulação de documentos, Otimização
Descrição
Varre as camadas de conteúdo da página selecionada e suas dependências de recursos transitivas e, então, remove recursos nomeados não referenciados no escopo de recursos aplicável
As opções padrão recorrem em Form XObjects, tiling patterns, glifos Type 3, aparências de anotações e grupos de soft-mask, retêm espaços de cor referenciados por imagens e outros recursos, removem arrays /ProcSet obsoletos e categorias de recursos vazias e coletam objetos indiretos tornados inalcançáveis pela limpeza
Sintaxe
Delphi
Function TPDFlib.PurgeUnusedResources(Const PageRange: WideString= '';
Options: Integer= PDF_RESOURCE_PURGE_DEFAULT): Integer; Overload;
Function TPDFlib.PurgeUnusedResources(Const PageRange: WideString;
Options: Integer; Out Stats: TPDFlibResourcePurgeStats): Integer; Overload;
Parâmetros
| PageRange | Uma faixa de páginas com base 1 usando a mesma sintaxe das outras APIs de faixa de páginas, ou uma string vazia para todas as páginas |
|---|---|
| Options | Uma combinação bit a bit das constantes de opção de purga de recursos |
| Stats | Recebe contadores de varredura, segurança, remoção e objetos órfãos |
Opções
| PDF_RESOURCE_PURGE_RECURSE_FORMS | Varre Form XObjects referenciados e respeita seu próprio escopo de recursos ou o herdado |
|---|---|
| PDF_RESOURCE_PURGE_REMOVE_PROCSET | Remove arrays /ProcSet obsoletos |
| PDF_RESOURCE_PURGE_REMOVE_EMPTY | Remove dicionários de categorias de recursos vazios |
| PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN | Permite a limpeza quando um stream de conteúdo contém um operador desconhecido |
| PDF_RESOURCE_PURGE_DRY_RUN | Relata entradas nomeadas removíveis sem mutar o documento |
| PDF_RESOURCE_PURGE_GARBAGE_COLLECT | Coleta objetos indiretos tornados inalcançáveis depois da limpeza viva |
| PDF_RESOURCE_PURGE_RECURSE_PATTERNS | Varre o conteúdo e o escopo de recursos independente de tiling patterns referenciados |
| PDF_RESOURCE_PURGE_RECURSE_TYPE3 | Varre cada stream CharProc em fontes Type 3 referenciadas usando o escopo de recursos da fonte |
| PDF_RESOURCE_PURGE_RECURSE_APPEARANCES | Varre streams de aparência de anotações normal, rollover, down e de estado nomeado |
| PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKS | Varre streams de grupos de transparência referenciados por dicionários de soft-mask de ExtGState |
| PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIES | Inspeciona image XObjects, máscaras explícitas, soft-mask images e imagens alternativas em busca de dependências aninhadas |
| PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIES | Combina análise de dependências de pattern, Type 3, aparência, soft-mask e imagem |
| PDF_RESOURCE_PURGE_DEFAULT | Combina toda análise de dependências, recursão de Form, remoção de ProcSet, remoção de categorias vazias e coleta de lixo |
Valores retornados
| Limpeza viva | O número de entradas de recursos nomeadas removidas |
|---|---|
| Dry run | O número de entradas de recursos nomeadas que podem ser removidas |
| 0 | Nenhuma entrada nomeada removível, nenhuma página selecionada ou nenhum documento carregado |
Observações
A varredura reconhece referências Font, XObject, ExtGState, ColorSpace, Pattern, Shading e Properties, incluindo espaços de cor personalizados em dicionários de imagens inline e dependências indiretas carregadas por objetos de recursos
O closure de dependências cobre espaços de cor de imagens e shadings, bases Indexed, alternates Separation e DeviceN, espaços subjacentes de Pattern, alternates ICCBased, conteúdo de tiling patterns, todos os CharProcs Type 3, estados de aparência de anotações, grupos de soft-mask de ExtGState, máscaras de imagem, soft-mask images e imagens alternativas
Nomes PDF são correspondidos com distinção de maiúsculas e todas as camadas de conteúdo de cada página selecionada são combinadas antes da limpeza
Streams malformados e operadores desconhecidos preservam seu escopo de recursos completo, a menos que PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN esteja definido
Dicionários de recursos compartilhados e herdados são copiados antes da mutação, então a limpeza permanece local à página, Form, pattern, fonte Type 3, aparência ou grupo de soft-mask selecionado
Streams repetidos e entradas de dependências reutilizam resultados de análise em cache, enquanto limites de profundidade e rastreamento de streams ativos terminam ciclos de recursos malformados
O cancelamento está disponível por meio de Abort a partir de um manipulador OnProgress
Exemplo
var
Stats: TPDFlibResourcePurgeStats;
Removed: Integer;
begin
Removed:= PDF.PurgeUnusedResources('1-20',
PDF_RESOURCE_PURGE_DEFAULT, Stats);
PDF.SaveToFile('optimised.pdf');
end;
Veja também
TPDFlibResourcePurgeStats, GarbageCollectObjects, OnProgress, Abort