PurgeUnusedResources

Manipolazione dei documenti, ottimizzazione

Descrizione

Esamina livelli di contenuto e dipendenze transitive della pagina selezionata, poi rimuove risorse denominate non referenziate nell'ambito applicabile

Le opzioni predefinite attraversano ricorsivamente XObject Form, pattern a tasselli, glifi Type 3, aspetti delle annotazioni e gruppi di maschere morbide, conservano gli spazi colore a cui fanno riferimento immagini e altre risorse, rimuovono le matrici /ProcSet obsolete e le categorie di risorse vuote e raccolgono gli oggetti indiretti resi irraggiungibili dalla pulizia

Sintassi

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;

Parametri

PageRangeIntervallo pagine con base 1 e sintassi delle altre API oppure stringa vuota per tutte le pagine
OptionsUna combinazione bit per bit delle costanti di opzione per l'eliminazione delle risorse
StatsRiceve i contatori di scansione, sicurezza, rimozione e oggetti orfani

Opzioni

PDF_RESOURCE_PURGE_RECURSE_FORMSAnalizza i Form XObject referenziati e rispetta il loro ambito delle risorse, proprio o ereditato
PDF_RESOURCE_PURGE_REMOVE_PROCSETRimuove gli array /ProcSet obsoleti
PDF_RESOURCE_PURGE_REMOVE_EMPTYRimuove i dizionari vuoti delle categorie di risorse
PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWNConsente la pulizia quando un flusso di contenuto contiene un operatore sconosciuto
PDF_RESOURCE_PURGE_DRY_RUNSegnala le voci con nome rimovibili senza modificare il documento
PDF_RESOURCE_PURGE_GARBAGE_COLLECTRaccoglie gli oggetti indiretti resi irraggiungibili dopo la pulizia attiva
PDF_RESOURCE_PURGE_RECURSE_PATTERNSAnalizza il contenuto e l'ambito indipendente delle risorse dei pattern affiancati referenziati
PDF_RESOURCE_PURGE_RECURSE_TYPE3Analizza ogni flusso CharProc nei font Type 3 referenziati usando l'ambito delle risorse del font
PDF_RESOURCE_PURGE_RECURSE_APPEARANCESAnalizza i flussi di aspetto normale, rollover, premuto e degli stati denominati delle annotazioni
PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKSAnalizza i flussi dei gruppi di trasparenza referenziati dai dizionari di maschera morbida ExtGState
PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIESEsamina XObject immagine, maschere esplicite, immagini soft-mask e alternative per dipendenze annidate
PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIESCombina l'analisi delle dipendenze di pattern, Type 3, aspetto, maschera morbida e immagine
PDF_RESOURCE_PURGE_DEFAULTCombina analisi dipendenze, ricorsione Form, rimozione ProcSet e categorie vuote e garbage collection

Valori restituiti

Live cleanupIl numero di voci delle risorse con nome rimosse
Dry runIl numero di voci delle risorse con nome che è possibile rimuovere
0Nessuna voce con nome rimovibile, nessuna pagina selezionata o nessun documento caricato

Note

L'analisi riconosce riferimenti Font, XObject, ExtGState, ColorSpace, Pattern, Shading e Properties, inclusi spazi colore personalizzati nei dizionari delle immagini inline e dipendenze indirette delle risorse

La chiusura delle dipendenze comprende spazi colore di immagini e shading, basi Indexed, alternative Separation e DeviceN, spazi sottostanti Pattern, alternative ICCBased, contenuto dei pattern di tassellatura, tutti i CharProc Type 3, stati dell'aspetto delle annotazioni, gruppi soft mask ExtGState, maschere immagine, immagini soft mask e immagini alternative

I nomi PDF vengono confrontati distinguendo maiuscole e tutti i livelli selezionati vengono combinati prima della pulizia

Stream non validi e operatori sconosciuti conservano l'intero ambito risorse salvo impostazione di PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN

I dizionari risorse condivisi ed ereditati vengono copiati prima della modifica, mantenendo la pulizia locale a pagina, Form, motivo, Type 3, aspetto o maschera

Stream ripetuti e dipendenze riutilizzano risultati nella cache, mentre limiti di profondità e monitoraggio degli stream attivi terminano cicli di risorse non validi

L'annullamento è disponibile tramite Abort da un gestore OnProgress

Esempio

var
  Stats: TPDFlibResourcePurgeStats;
  Removed: Integer;
begin
  Removed:= PDF.PurgeUnusedResources('1-20',
    PDF_RESOURCE_PURGE_DEFAULT, Stats);
  PDF.SaveToFile('optimised.pdf');
end;

Vedere anche

TPDFlibResourcePurgeStats, GarbageCollectObjects, OnProgress, Abort