PurgeUnusedResources
Dokumentbehandling, optimering
Beskrivelse
Scanner indholdslagene på den valgte side og deres transitive ressourceafhængigheder og fjerner derefter navngivne ressourcer, som ikke refereres i det relevante ressourceområde
Standardindstillingerne gennemgår rekursivt Form XObjects, flisemønstre, Type 3-glyffer, annoteringsudseender og soft-mask-grupper, bevarer farverum, som billeder og andre ressourcer refererer til, fjerner forældede /ProcSet-arrays og tomme ressourcekategorier samt indsamler indirekte objekter, som oprydningen har gjort utilgængelige
Syntaks
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;
Parametre
| PageRange | Et 1-baseret sideinterval med samme syntaks som de øvrige API'er til sideintervaller eller en tom streng for alle sider |
|---|---|
| Options | En bitvis kombination af indstillingskonstanterne for ressourcerydning |
| Stats | Modtager tællere for scanning, sikkerhed, fjernelse og forældreløse objekter |
Valgmuligheder
| PDF_RESOURCE_PURGE_RECURSE_FORMS | Scanner refererede Form XObjects og respekterer deres eget eller nedarvede ressourceområde |
|---|---|
| PDF_RESOURCE_PURGE_REMOVE_PROCSET | Fjerner forældede /ProcSet-arrays |
| PDF_RESOURCE_PURGE_REMOVE_EMPTY | Fjerner tomme ordbøger for ressourcekategorier |
| PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN | Tillader oprydning, når en indholdsstrøm indeholder en ukendt operator |
| PDF_RESOURCE_PURGE_DRY_RUN | Rapporterer navngivne poster, der kan fjernes, uden at ændre dokumentet |
| PDF_RESOURCE_PURGE_GARBAGE_COLLECT | Indsamler indirekte objekter, der er blevet utilgængelige efter oprydning af aktive objekter |
| PDF_RESOURCE_PURGE_RECURSE_PATTERNS | Scanner indholdet og det uafhængige ressourceomfang for refererede flisemønstre |
| PDF_RESOURCE_PURGE_RECURSE_TYPE3 | Scanner hver CharProc-strøm i refererede Type 3-skrifttyper ved hjælp af skrifttypens ressourceområde |
| PDF_RESOURCE_PURGE_RECURSE_APPEARANCES | Scanner normale annotationsvisningsstreams samt rollover-, down- og navngivne tilstandsstreams |
| PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKS | Scanner gennemsigtighedsgruppestreams, der refereres af ExtGState-ordbøger til bløde masker |
| PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIES | Undersøger billed-XObject-objekter, eksplicitte masker, soft-mask-billeder og alternative billeder for indlejrede afhængigheder |
| PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIES | Kombinerer analyse af afhængigheder for mønstre, Type 3, visninger, bløde masker og billeder |
| PDF_RESOURCE_PURGE_DEFAULT | Kombinerer al afhængighedsanalyse, Form-rekursion, fjernelse af ProcSet, fjernelse af tomme kategorier og garbage collection |
Returværdier
| Live cleanup | Antallet af fjernede navngivne ressourceposter |
|---|---|
| Dry run | Antallet af navngivne ressourceposter, der kan fjernes |
| 0 | Ingen flytbare navngivne poster, ingen valgte sider eller intet indlæst dokument |
Bemærkninger
Scanningen genkender referencer til Font, XObject, ExtGState, ColorSpace, Pattern, Shading og Properties, herunder brugerdefinerede farverum i inline-billedordbøger og indirekte afhængigheder, der bæres af ressourceobjekter
Afhængighedslukningen omfatter billed- og shadingfarverum, Indexed-baser, alternativer for Separation og DeviceN, underliggende Pattern-rum, ICCBased-alternativer, indhold i flisemønstre, alle Type 3 CharProcs, tilstande for annotationsvisninger, ExtGState-grupper med bløde masker, billedmasker, bløde maskebilleder og alternative billeder
PDF-navne matches med forskel på store og små bogstaver, og alle indholdslag på hver valgt side kombineres før oprydning
Forkert udformede strømme og ukendte operatorer bevarer hele deres ressourceomfang, medmindre PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN er angivet
Delte og nedarvede ressourceordbøger kopieres før ændring, så oprydningen forbliver lokal for den valgte side, Form, mønsteret, Type 3-skrifttypen, udseendet eller soft-mask-gruppen
Gentagne streams og afhængighedsposter genbruger cachelagrede parseresultater, mens dybdegrænser og sporing af aktive streams afslutter fejlbehæftede ressourcecyklusser
Annullering er tilgængelig via Abort fra en OnProgress-handler
Eksempel
var
Stats: TPDFlibResourcePurgeStats;
Removed: Integer;
begin
Removed:= PDF.PurgeUnusedResources('1-20',
PDF_RESOURCE_PURGE_DEFAULT, Stats);
PDF.SaveToFile('optimised.pdf');
end;
Se også
TPDFlibResourcePurgeStats, GarbageCollectObjects, OnProgress, Abort