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

PageRangeUm 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
OptionsUma combinação bit a bit das constantes de opções de eliminação de recursos
StatsRecebe os contadores de análise, segurança, remoção e objetos órfãos

Options

PDF_RESOURCE_PURGE_RECURSE_FORMSAnalisa os Form XObjects referenciados e respeita o respetivo âmbito de recursos próprio ou herdado
PDF_RESOURCE_PURGE_REMOVE_PROCSETRemove matrizes /ProcSet obsoletas
PDF_RESOURCE_PURGE_REMOVE_EMPTYRemove dicionários vazios de categorias de recursos
PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWNPermite a limpeza quando um fluxo de conteúdo contém um operador desconhecido
PDF_RESOURCE_PURGE_DRY_RUNComunica entradas com nome que podem ser removidas sem modificar o documento
PDF_RESOURCE_PURGE_GARBAGE_COLLECTRecolhe objetos indiretos que ficaram inalcançáveis após a limpeza ativa
PDF_RESOURCE_PURGE_RECURSE_PATTERNSAnalisa o conteúdo e o âmbito de recursos independente dos padrões de mosaico referenciados
PDF_RESOURCE_PURGE_RECURSE_TYPE3Analisa todos os fluxos CharProc dos tipos de letra Type 3 referenciados utilizando o âmbito de recursos do tipo de letra
PDF_RESOURCE_PURGE_RECURSE_APPEARANCESAnalisa os fluxos de aparência normal, rollover, pressionada e de estados nomeados das anotações
PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKSAnalisa os fluxos de grupos de transparência referenciados por dicionários de máscaras suaves ExtGState
PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIESInspeciona XObjects de imagem, máscaras explícitas, imagens de máscara suave e imagens alternativas quanto a dependências aninhadas
PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIESCombina a análise das dependências de padrões, Type 3, aparências, máscaras suaves e imagens
PDF_RESOURCE_PURGE_DEFAULTCombina 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 cleanupO número de entradas de recursos nomeados removidas
Dry runO número de entradas de recursos com nome que podem ser removidas
0Nenhuma 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