PurgeUnusedResources
Dokumentmanipulering, Optimering
Beskrivning
Genomsöker den valda sidans innehållslager och deras transitiva resursberoenden, och tar sedan bort namngivna resurser som inte refereras i tillämplig resursomfattning
Standardalternativen går rekursivt in i Form XObjects, tiling patterns, Type 3-glyfer, annoteringsappearances och soft mask-grupper, behåller färgrymder som bilder och andra resurser refererar, tar bort utfasade /ProcSet-arrayer och tomma resurskategorier och samlar indirekta objekt som städningen gjort onåbara
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;
Parametrar
| PageRange | Ett 1-baserat sidintervall med samma syntax som övriga page range-API:er, eller en tom sträng för alla sidor |
|---|---|
| Options | En bitvis kombination av konstanterna för resource purge-alternativen |
| Stats | Tar emot skannings-, säkerhets-, borttagnings- och föräldralöst objekt-räknare |
Alternativ
| PDF_RESOURCE_PURGE_RECURSE_FORMS | Genomsöker refererade Form XObjects och respekterar deras egen eller ärvda resursomfattning |
|---|---|
| PDF_RESOURCE_PURGE_REMOVE_PROCSET | Removes deprecated /ProcSet arrays |
| PDF_RESOURCE_PURGE_REMOVE_EMPTY | Removes empty resource category dictionaries |
| PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN | Tillåter städning när en innehållsström innehåller en okänd operator |
| PDF_RESOURCE_PURGE_DRY_RUN | Rapporterar borttagningsbara namngivna poster utan att mutera dokumentet |
| PDF_RESOURCE_PURGE_GARBAGE_COLLECT | Samlar indirekta objekt som gjorts onåbara efter levande städning |
| PDF_RESOURCE_PURGE_RECURSE_PATTERNS | Genomsöker innehållet och den oberoende resursomfattningen hos refererade tiling patterns |
| PDF_RESOURCE_PURGE_RECURSE_TYPE3 | Genomsöker varje CharProc-ström i refererade Type 3-typsnitt med typsnittsresursens omfattning |
| PDF_RESOURCE_PURGE_RECURSE_APPEARANCES | Skannar normal-, rollover-, down- och namngivna tillståndsutseendeströmmar för anteckningar |
| PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKS | Scans transparency group streams referenced by ExtGState soft-mask dictionaries |
| PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIES | Granskar bild-XObjects, explicita masker, soft-mask-bilder och alternativa bilder efter nästlade beroenden |
| PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIES | Kombinerar analys av mönster-, Type 3-, utseende-, soft-mask- och bildberoenden |
| PDF_RESOURCE_PURGE_DEFAULT | Kombinerar all beroendeanalys, Form-rekursion, ProcSet-borttag, tomt kategori-borttag och skräpsamling |
Returvärden
| Live cleanup | Antalet borttagna namngivna resursposter |
|---|---|
| Dry run | Antalet namngivna resursposter som kan tas bort |
| 0 | Inga borttagningsbara namngivna poster, inga valda sidor, eller inget inläst dokument |
Anmärkningar
Genomsökningen känner igen Font-, XObject-, ExtGState-, ColorSpace-, Pattern-, Shading- och Properties-referenser, inklusive anpassade färgrymder i inline-bilddictionarys och indirekta beroenden som resursobjekt bär
Beroendeslutlighet täcker bild- och shading-färgrymder, Indexed-baser, Separation- och DeviceN-alternativ, Pattern-underliggande ytor, ICCBased-alternativ, innehåll i tiling patterns, alla Type 3 CharProcs, annoteringens utseendelägen, ExtGState soft mask-grupper, bildmasker, soft mask-bilder och alternativa bilder
PDF-namn matchas skiftlägeskänsligt och alla innehållslager på varje vald sida kombineras före städning
Felformade strömmar och okända operatorer bevarar sin fullständiga resursomfattning om inte PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN är satt
Delade och ärvda resursdictionarys kopieras före mutation så att städningen förblir lokal till den valda sidan, Form, mönster, Type 3-typsnitt, appearance eller soft mask-grupp
Upprepade strömmar och beroendeposter återanvänder cachade parsresultat, medan djupgränser och aktiv ström-spårning terminerar felformade resurscykler
Avbrott är tillgängligt via Abort från en OnProgress-hanterare
Exempel
var
Stats: TPDFlibResourcePurgeStats;
Removed: Integer;
begin
Removed:= PDF.PurgeUnusedResources('1-20',
PDF_RESOURCE_PURGE_DEFAULT, Stats);
PDF.SaveToFile('optimised.pdf');
end;
Se även
TPDFlibResourcePurgeStats, GarbageCollectObjects, OnProgress, Abort