PurgeUnusedResources

Dokumentbearbeitung, Optimierung

Beschreibung

Durchsucht die Inhaltsebenen der ausgewählten Seite und ihre transitiven Ressourcenabhängigkeiten und entfernt anschließend benannte Ressourcen, die im jeweiligen Ressourcenbereich nicht referenziert werden

Die Standardoptionen durchsuchen Form-XObjects, Kachelmuster, Type-3-Glyphen, Anmerkungsdarstellungen und Softmaskengruppen rekursiv, behalten von Bildern und anderen Ressourcen referenzierte Farbräume bei, entfernen veraltete /ProcSet-Arrays und leere Ressourcenkategorien und sammeln indirekte Objekte, die durch die Bereinigung nicht mehr erreichbar sind

Syntax

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;

Parameter

PageRangeEin einsbasierter Seitenbereich mit derselben Syntax wie die übrigen Seitenbereichs-APIs oder eine leere Zeichenfolge für alle Seiten
OptionsEine bitweise Kombination der Optionskonstanten für die Ressourcenbereinigung
StatsEmpfängt Zähler für Suche, Sicherheit, Entfernung und verwaiste Objekte

Optionen

PDF_RESOURCE_PURGE_RECURSE_FORMSDurchsucht referenzierte Form-XObjects und berücksichtigt deren eigenen oder geerbten Ressourcenbereich
PDF_RESOURCE_PURGE_REMOVE_PROCSETEntfernt veraltete /ProcSet-Arrays
PDF_RESOURCE_PURGE_REMOVE_EMPTYEntfernt leere Wörterbücher für Ressourcenkategorien
PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWNErlaubt die Bereinigung, wenn ein Inhaltsstream einen unbekannten Operator enthält
PDF_RESOURCE_PURGE_DRY_RUNMeldet entfernbare benannte Einträge, ohne das Dokument zu verändern
PDF_RESOURCE_PURGE_GARBAGE_COLLECTSammelt indirekte Objekte, die nach der Bereinigung aktiver Objekte nicht mehr erreichbar sind
PDF_RESOURCE_PURGE_RECURSE_PATTERNSDurchsucht den Inhalt und den unabhängigen Ressourcenbereich referenzierter Kachelmuster
PDF_RESOURCE_PURGE_RECURSE_TYPE3Durchsucht jeden CharProc-Stream in referenzierten Type-3-Schriftarten im Ressourcenbereich der Schriftart
PDF_RESOURCE_PURGE_RECURSE_APPEARANCESDurchsucht normale, Rollover-, Down- und benannte Zustands-Anmerkungsdarstellungsstreams
PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKSDurchsucht Transparenzgruppenstreams, auf die ExtGState-Softmask-Wörterbücher verweisen
PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIESPrüft Bild-XObjects, explizite Masken, Softmaskenbilder und alternative Bilder auf verschachtelte Abhängigkeiten
PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIESKombiniert die Abhängigkeitsanalyse für Muster, Type 3, Darstellungen, Softmasks und Bilder
PDF_RESOURCE_PURGE_DEFAULTKombiniert Abhängigkeitsanalyse, Form-Rekursion, ProcSet-Entfernung, Entfernung leerer Kategorien und Speicherbereinigung

Rückgabewerte

Live cleanupDie Anzahl der entfernten benannten Ressourceneinträge
Dry runDie Anzahl der benannten Ressourceneinträge, die entfernt werden können
0Keine entfernbaren benannten Einträge, keine ausgewählten Seiten oder kein geladenes Dokument

Anmerkungen

Der Scan erkennt Referenzen auf Font, XObject, ExtGState, ColorSpace, Pattern, Shading und Properties, einschließlich benutzerdefinierter Farbräume in Inline-Bildwörterbüchern und indirekter Abhängigkeiten in Ressourcenobjekten

Der Abhängigkeitsabschluss umfasst Bild- und Shading-Farbräume, Indexed-Basen, Separation- und DeviceN-Alternativen, zugrunde liegende Pattern-Räume, ICCBased-Alternativen, Kachelmusterinhalt, alle Type-3-CharProcs, Anmerkungsdarstellungszustände, ExtGState-Softmask-Gruppen, Bildmasken, Softmask-Bilder und alternative Bilder

PDF-Namen werden unter Beachtung der Groß-/Kleinschreibung abgeglichen, und alle Inhaltsebenen jeder ausgewählten Seite werden vor der Bereinigung zusammengeführt

Fehlerhafte Streams und unbekannte Operatoren behalten ihren vollständigen Ressourcenbereich bei, sofern PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN nicht gesetzt ist

Gemeinsam verwendete und geerbte Ressourcenwörterbücher werden vor einer Änderung kopiert, sodass die Bereinigung lokal auf die ausgewählte Seite, das Form, Muster, die Type-3-Schrift, Darstellung oder Softmaskengruppe beschränkt bleibt

Wiederholte Streams und Abhängigkeitseinträge verwenden zwischengespeicherte Analyseergebnisse; Tiefenbegrenzungen und die Verfolgung aktiver Streams beenden fehlerhafte Ressourcenschleifen

Ein Abbruch ist über Abort aus einem OnProgress-Handler möglich

Beispiel

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

Siehe auch

TPDFlibResourcePurgeStats, GarbageCollectObjects, OnProgress, Abort