PurgeUnusedResources
Manipulação de documentos, Otimização
Descrição
Analisa as camadas de conteúdo da página selecionada e as respetivas dependências transitivas de recursos e, em seguida, remove os recursos com nome que não são referenciados no âmbito de recursos aplicável
As opções predefinidas percorrem recursivamente Form XObjects, padrões de mosaico, glifos Type 3, aparências de anotações e grupos de máscaras suaves, conservam espaços de cores referenciados por imagens e outros recursos, removem matrizes /ProcSet obsoletas e categorias de recursos vazias e recolhem objetos indiretos que a limpeza tornou inacessíveis
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 | Um intervalo de páginas baseado em 1 que utiliza a mesma sintaxe que as outras APIs de intervalos de páginas, ou uma cadeia vazia para todas as páginas |
|---|---|
| Options | Uma combinação bit a bit das constantes de opções de eliminação de recursos |
| Stats | Recebe os contadores de análise, segurança, remoção e objetos órfãos |
Options
| PDF_RESOURCE_PURGE_RECURSE_FORMS | Analisa os Form XObjects referenciados e respeita o respetivo âmbito de recursos próprio ou herdado |
|---|---|
| PDF_RESOURCE_PURGE_REMOVE_PROCSET | Remove matrizes /ProcSet obsoletas |
| PDF_RESOURCE_PURGE_REMOVE_EMPTY | Remove dicionários vazios de categorias de recursos |
| PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN | Permite a limpeza quando um fluxo de conteúdo contém um operador desconhecido |
| PDF_RESOURCE_PURGE_DRY_RUN | Comunica entradas com nome que podem ser removidas sem modificar o documento |
| PDF_RESOURCE_PURGE_GARBAGE_COLLECT | Recolhe objetos indiretos que ficaram inalcançáveis após a limpeza ativa |
| PDF_RESOURCE_PURGE_RECURSE_PATTERNS | Analisa o conteúdo e o âmbito de recursos independente dos padrões de mosaico referenciados |
| PDF_RESOURCE_PURGE_RECURSE_TYPE3 | Analisa todos os fluxos CharProc dos tipos de letra Type 3 referenciados utilizando o âmbito de recursos do tipo de letra |
| PDF_RESOURCE_PURGE_RECURSE_APPEARANCES | Analisa os fluxos de aparência normal, rollover, pressionada e de estados nomeados das anotações |
| PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKS | Analisa os fluxos de grupos de transparência referenciados por dicionários de máscaras suaves ExtGState |
| PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIES | Inspeciona XObjects de imagem, máscaras explícitas, imagens de máscara suave e imagens alternativas quanto a dependências aninhadas |
| PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIES | Combina a análise das dependências de padrões, Type 3, aparências, máscaras suaves e imagens |
| PDF_RESOURCE_PURGE_DEFAULT | Combina todas as análises de dependências, recursão de Form, remoção de ProcSet, remoção de categorias vazias e recolha de lixo |
Valores devolvidos
| Live cleanup | O número de entradas de recursos nomeados removidas |
|---|---|
| Dry run | O número de entradas de recursos com nome que podem ser removidas |
| 0 | Nenhuma entrada com nome removível, nenhuma página selecionada ou nenhum documento carregado |
Observações
A análise reconhece referências Font, XObject, ExtGState, ColorSpace, Pattern, Shading e Properties, incluindo espaços de cores personalizados nos dicionários de imagens inline e dependências indiretas transportadas por objetos de recursos
O fecho de dependências abrange espaços de cores de imagens e sombreados, bases Indexed, alternativas Separation e DeviceN, espaços subjacentes Pattern, alternativas ICCBased, conteúdo de padrões em mosaico, todos os CharProcs Type 3, estados de aparência de anotações, grupos de máscaras suaves ExtGState, máscaras de imagem, imagens de máscara suave e imagens alternativas
Os nomes PDF são comparados com distinção entre maiúsculas e minúsculas e todas as camadas de conteúdo de cada página selecionada são combinadas antes da limpeza
Os fluxos malformados e operadores desconhecidos preservam todo o respetivo âmbito de recursos, salvo se PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN estiver definido
Os dicionários de recursos partilhados e herdados são copiados antes da alteração, para que a limpeza permaneça local à página, Form, padrão, tipo de letra Type 3, aparência ou grupo de máscara suave selecionado
Os fluxos repetidos e as entradas de dependências reutilizam resultados de análise em cache, enquanto os limites de profundidade e o acompanhamento de fluxos ativos terminam ciclos de recursos malformados
O cancelamento está disponível através de Abort num processador OnProgress
Exemplo
var
Stats: TPDFlibResourcePurgeStats;
Removed: Integer;
begin
Removed:= PDF.PurgeUnusedResources('1-20',
PDF_RESOURCE_PURGE_DEFAULT, Stats);
PDF.SaveToFile('optimised.pdf');
end;
Consulte também
TPDFlibResourcePurgeStats, GarbageCollectObjects, OnProgress, Abort