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
| PageRange | Ein einsbasierter Seitenbereich mit derselben Syntax wie die übrigen Seitenbereichs-APIs oder eine leere Zeichenfolge für alle Seiten |
|---|---|
| Options | Eine bitweise Kombination der Optionskonstanten für die Ressourcenbereinigung |
| Stats | Empfängt Zähler für Suche, Sicherheit, Entfernung und verwaiste Objekte |
Optionen
| PDF_RESOURCE_PURGE_RECURSE_FORMS | Durchsucht referenzierte Form-XObjects und berücksichtigt deren eigenen oder geerbten Ressourcenbereich |
|---|---|
| PDF_RESOURCE_PURGE_REMOVE_PROCSET | Entfernt veraltete /ProcSet-Arrays |
| PDF_RESOURCE_PURGE_REMOVE_EMPTY | Entfernt leere Wörterbücher für Ressourcenkategorien |
| PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN | Erlaubt die Bereinigung, wenn ein Inhaltsstream einen unbekannten Operator enthält |
| PDF_RESOURCE_PURGE_DRY_RUN | Meldet entfernbare benannte Einträge, ohne das Dokument zu verändern |
| PDF_RESOURCE_PURGE_GARBAGE_COLLECT | Sammelt indirekte Objekte, die nach der Bereinigung aktiver Objekte nicht mehr erreichbar sind |
| PDF_RESOURCE_PURGE_RECURSE_PATTERNS | Durchsucht den Inhalt und den unabhängigen Ressourcenbereich referenzierter Kachelmuster |
| PDF_RESOURCE_PURGE_RECURSE_TYPE3 | Durchsucht jeden CharProc-Stream in referenzierten Type-3-Schriftarten im Ressourcenbereich der Schriftart |
| PDF_RESOURCE_PURGE_RECURSE_APPEARANCES | Durchsucht normale, Rollover-, Down- und benannte Zustands-Anmerkungsdarstellungsstreams |
| PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKS | Durchsucht Transparenzgruppenstreams, auf die ExtGState-Softmask-Wörterbücher verweisen |
| PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIES | Prüft Bild-XObjects, explizite Masken, Softmaskenbilder und alternative Bilder auf verschachtelte Abhängigkeiten |
| PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIES | Kombiniert die Abhängigkeitsanalyse für Muster, Type 3, Darstellungen, Softmasks und Bilder |
| PDF_RESOURCE_PURGE_DEFAULT | Kombiniert Abhängigkeitsanalyse, Form-Rekursion, ProcSet-Entfernung, Entfernung leerer Kategorien und Speicherbereinigung |
Rückgabewerte
| Live cleanup | Die Anzahl der entfernten benannten Ressourceneinträge |
|---|---|
| Dry run | Die Anzahl der benannten Ressourceneinträge, die entfernt werden können |
| 0 | Keine 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