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

PageRangeEt 1-baseret sideinterval med samme syntaks som de øvrige API'er til sideintervaller eller en tom streng for alle sider
OptionsEn bitvis kombination af indstillingskonstanterne for ressourcerydning
StatsModtager tællere for scanning, sikkerhed, fjernelse og forældreløse objekter

Valgmuligheder

PDF_RESOURCE_PURGE_RECURSE_FORMSScanner refererede Form XObjects og respekterer deres eget eller nedarvede ressourceområde
PDF_RESOURCE_PURGE_REMOVE_PROCSETFjerner forældede /ProcSet-arrays
PDF_RESOURCE_PURGE_REMOVE_EMPTYFjerner tomme ordbøger for ressourcekategorier
PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWNTillader oprydning, når en indholdsstrøm indeholder en ukendt operator
PDF_RESOURCE_PURGE_DRY_RUNRapporterer navngivne poster, der kan fjernes, uden at ændre dokumentet
PDF_RESOURCE_PURGE_GARBAGE_COLLECTIndsamler indirekte objekter, der er blevet utilgængelige efter oprydning af aktive objekter
PDF_RESOURCE_PURGE_RECURSE_PATTERNSScanner indholdet og det uafhængige ressourceomfang for refererede flisemønstre
PDF_RESOURCE_PURGE_RECURSE_TYPE3Scanner hver CharProc-strøm i refererede Type 3-skrifttyper ved hjælp af skrifttypens ressourceområde
PDF_RESOURCE_PURGE_RECURSE_APPEARANCESScanner normale annotationsvisningsstreams samt rollover-, down- og navngivne tilstandsstreams
PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKSScanner gennemsigtighedsgruppestreams, der refereres af ExtGState-ordbøger til bløde masker
PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIESUndersøger billed-XObject-objekter, eksplicitte masker, soft-mask-billeder og alternative billeder for indlejrede afhængigheder
PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIESKombinerer analyse af afhængigheder for mønstre, Type 3, visninger, bløde masker og billeder
PDF_RESOURCE_PURGE_DEFAULTKombinerer al afhængighedsanalyse, Form-rekursion, fjernelse af ProcSet, fjernelse af tomme kategorier og garbage collection

Returværdier

Live cleanupAntallet af fjernede navngivne ressourceposter
Dry runAntallet af navngivne ressourceposter, der kan fjernes
0Ingen 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