PurgeUnusedResources

Manipulation de documents, optimisation

Description

Analyse les couches de contenu de la page et leurs dépendances transitives, puis supprime les ressources nommées non référencées dans la portée applicable

Les options par défaut parcourent les Form XObjects, motifs de pavage, glyphes Type 3, apparences d’annotation et groupes de masques adoucis, conservent les espaces colorimétriques référencés, suppriment les tableaux /ProcSet obsolètes et catégories vides, puis collectent les objets indirects rendus inaccessibles

Syntaxe

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;

Paramètres

PageRangeUne plage de pages à partir de 1 utilisant la même syntaxe que les autres API de plage, ou une chaîne vide pour toutes les pages
OptionsCombinaison binaire des constantes d’option de purge des ressources
StatsReçoit les compteurs d’analyse, de sécurité, de suppression et d’objets orphelins

Options

PDF_RESOURCE_PURGE_RECURSE_FORMSAnalyse les objets XObject Form référencés et respecte leur portée de ressources propre ou héritée
PDF_RESOURCE_PURGE_REMOVE_PROCSETSupprime les tableaux /ProcSet obsolètes
PDF_RESOURCE_PURGE_REMOVE_EMPTYSupprime les dictionnaires vides de catégories de ressources
PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWNAutorise le nettoyage lorsqu’un flux de contenu contient un opérateur inconnu
PDF_RESOURCE_PURGE_DRY_RUNSignale les entrées nommées supprimables sans modifier le document
PDF_RESOURCE_PURGE_GARBAGE_COLLECTCollecte les objets indirects devenus inaccessibles après le nettoyage réel
PDF_RESOURCE_PURGE_RECURSE_PATTERNSAnalyse le contenu et la portée de ressources indépendante des motifs en mosaïque référencés
PDF_RESOURCE_PURGE_RECURSE_TYPE3Analyse chaque flux CharProc des polices Type 3 référencées en utilisant la portée de ressources de la police
PDF_RESOURCE_PURGE_RECURSE_APPEARANCESAnalyse les flux d’apparence d’annotation normaux, de survol, enfoncés et d’état nommé
PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKSAnalyse les flux de groupes de transparence référencés par les dictionnaires de masque de transparence ExtGState
PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIESExamine les objets XObject image, les masques explicites, les images de masque de transparence et les images alternatives afin de détecter les dépendances imbriquées
PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIESCombine l'analyse des dépendances de motif, de Type 3, d'apparence, de masque de transparence et d'image
PDF_RESOURCE_PURGE_DEFAULTCombine toute l'analyse des dépendances, la récursion Form, la suppression de ProcSet, la suppression des catégories vides et la collecte des objets inutilisés

Valeurs de retour

Live cleanupNombre d’entrées de ressources nommées supprimées
Dry runNombre d’entrées de ressources nommées pouvant être supprimées
0Aucune entrée nommée supprimable, aucune page sélectionnée ou aucun document chargé

Remarques

L’analyse reconnaît les références Font, XObject, ExtGState, ColorSpace, Pattern, Shading et Properties, y compris les espaces colorimétriques personnalisés des dictionnaires d’images en ligne et les dépendances indirectes portées par les objets de ressources

La fermeture des dépendances couvre les espaces colorimétriques d’images et d’ombrages, bases Indexed, variantes Separation et DeviceN, espaces sous-jacents Pattern, variantes ICCBased, contenu de motifs de pavage, tous les CharProcs Type 3, états d’apparence d’annotation, groupes de masques adoucis ExtGState, masques d’image, images de masque adouci et images alternatives

Les noms PDF sont comparés en respectant la casse et tous les calques de contenu de chaque page sélectionnée sont combinés avant le nettoyage

Les flux mal formés et les opérateurs inconnus préservent toute leur portée de ressources, sauf si PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN est défini

Les dictionnaires de ressources partagés et hérités sont copiés avant mutation afin que le nettoyage reste local à la page, Form, motif, police Type 3, apparence ou groupe de masque doux sélectionné

Les flux répétés et les entrées de dépendance réutilisent les résultats d’analyse mis en cache, tandis que les limites de profondeur et le suivi des flux actifs interrompent les cycles de ressources mal formés

L'annulation est disponible au moyen de Abort depuis un gestionnaire OnProgress

Exemple

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

Voir aussi

TPDFlibResourcePurgeStats, GarbageCollectObjects, OnProgress, Abort