PurgeUnusedResources

Documentbewerking, Optimalisatie

Beschrijving

Scant de inhoudslagen van de geselecteerde pagina en hun transitieve resourceafhankelijkheden en verwijdert daarna benoemde resources waarnaar in het toepasselijke resourcebereik niet wordt verwezen

De standaardopties recurreren in Form XObjects, tiling patterns, Type 3-glyphs, annotatieappearances en soft-mask-groepen, behouden kleurruimten waarnaar afbeeldingen en andere resources verwijzen, verwijderen verouderde /ProcSet-arrays en lege resourcecategorieen en verzamelen indirecte objecten die door de opschoning onbereikbaar zijn geworden

Syntaxis

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;

Parameters

PageRangeEen paginabereik beginnend bij 1 met dezelfde syntaxis als de andere paginabereik-API's, of een lege string voor elke pagina
OptionsEen bitsgewijze combinatie van de constanten voor resourcepurge-opties
StatsOntvangt tellers voor scannen, veiligheid, verwijdering en weesobjecten

Opties

PDF_RESOURCE_PURGE_RECURSE_FORMSScant gerefereerde Form XObjects en respecteert hun eigen of overgeërfde resourcebereik
PDF_RESOURCE_PURGE_REMOVE_PROCSETVerwijdert verouderde /ProcSet-arrays
PDF_RESOURCE_PURGE_REMOVE_EMPTYVerwijdert lege resourcecategorie-woordenboeken
PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWNStaat opschoning toe wanneer een contentstream een onbekende operator bevat
PDF_RESOURCE_PURGE_DRY_RUNRapporteert verwijderbare benoemde ingangen zonder het document te muteren
PDF_RESOURCE_PURGE_GARBAGE_COLLECTVerzamelt indirecte objecten die na live opschoning onbereikbaar zijn geworden
PDF_RESOURCE_PURGE_RECURSE_PATTERNSScant de inhoud en het onafhankelijke resourcebereik van gerefereerde tiling patterns
PDF_RESOURCE_PURGE_RECURSE_TYPE3Scant elke CharProc-stream in gerefereerde Type 3-fonts met het fontresourcebereik
PDF_RESOURCE_PURGE_RECURSE_APPEARANCESScant normale, rollover-, down- en named-state-annotatieappearance-streams
PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKSScant transparantiegroepstreams waarnaar ExtGState-soft-mask-woordenboeken verwijzen
PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIESInspecteert image XObjects, expliciete maskers, soft-mask-afbeeldingen en alternatieve afbeeldingen op geneste afhankelijkheden
PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIESCombineert afhankelijkheidsanalyse van pattern, Type 3, appearance, soft-mask en afbeelding
PDF_RESOURCE_PURGE_DEFAULTCombineert alle afhankelijkheidsanalyse, Form-recurrentie, ProcSet-verwijdering, verwijdering van lege categorieen en garbage collection

Retourwaarden

Live opschoningHet aantal verwijderde benoemde resource-ingangen
Dry runHet aantal benoemde resource-ingangen dat kan worden verwijderd
0Geen verwijderbare benoemde ingangen, geen geselecteerde pagina's of geen geladen document

Opmerkingen

De scan herkent Font-, XObject-, ExtGState-, ColorSpace-, Pattern-, Shading- en Properties-verwijzingen, inclusief aangepaste kleurruimten in woordenboeken van inline afbeeldingen en indirecte afhankelijkheden die resourceobjecten dragen

Afhankelijkheidssluiting omvat kleurruimten van afbeeldingen en shadings, Indexed-bases, Separation- en DeviceN-alternatieven, Pattern-onderliggende ruimten, ICCBased-alternatieven, tiling-pattern-inhoud, alle Type 3-CharProcs, annotatieappearance-toestanden, ExtGState-soft-mask-groepen, afbeeldingsmaskers, soft-mask-afbeeldingen en alternatieve afbeeldingen

PDF-namen worden hoofdlettergevoelig gematcht en alle inhoudslagen van elke geselecteerde pagina worden vóór de opschoning gecombineerd

Misvormde streams en onbekende operators behouden hun volledige resourcebereik tenzij PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN is gezet

Gedeelde en overgeërfde resourcewoordenboeken worden vóór mutatie gekopieerd zodat opschoning lokaal blijft bij de geselecteerde pagina, Form, pattern, Type 3-font, appearance of soft-mask-groep

Herhaalde streams en afhankelijkheidsingangen hergebruiken gecachte parseresultaten, terwijl dieptelimieten en actieve-streamtracking misvormde resourcecyclussen beeindigen

Annulering is beschikbaar via Abort vanuit een OnProgress-handler

Voorbeeld

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

Zie ook

TPDFlibResourcePurgeStats, GarbageCollectObjects, OnProgress, Abort