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
| PageRange | Une 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 |
|---|---|
| Options | Combinaison binaire des constantes d’option de purge des ressources |
| Stats | Reçoit les compteurs d’analyse, de sécurité, de suppression et d’objets orphelins |
Options
| PDF_RESOURCE_PURGE_RECURSE_FORMS | Analyse les objets XObject Form référencés et respecte leur portée de ressources propre ou héritée |
|---|---|
| PDF_RESOURCE_PURGE_REMOVE_PROCSET | Supprime les tableaux /ProcSet obsolètes |
| PDF_RESOURCE_PURGE_REMOVE_EMPTY | Supprime les dictionnaires vides de catégories de ressources |
| PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN | Autorise le nettoyage lorsqu’un flux de contenu contient un opérateur inconnu |
| PDF_RESOURCE_PURGE_DRY_RUN | Signale les entrées nommées supprimables sans modifier le document |
| PDF_RESOURCE_PURGE_GARBAGE_COLLECT | Collecte les objets indirects devenus inaccessibles après le nettoyage réel |
| PDF_RESOURCE_PURGE_RECURSE_PATTERNS | Analyse le contenu et la portée de ressources indépendante des motifs en mosaïque référencés |
| PDF_RESOURCE_PURGE_RECURSE_TYPE3 | Analyse 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_APPEARANCES | Analyse les flux d’apparence d’annotation normaux, de survol, enfoncés et d’état nommé |
| PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKS | Analyse les flux de groupes de transparence référencés par les dictionnaires de masque de transparence ExtGState |
| PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIES | Examine 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_DEPENDENCIES | Combine l'analyse des dépendances de motif, de Type 3, d'apparence, de masque de transparence et d'image |
| PDF_RESOURCE_PURGE_DEFAULT | Combine 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 cleanup | Nombre d’entrées de ressources nommées supprimées |
|---|---|
| Dry run | Nombre d’entrées de ressources nommées pouvant être supprimées |
| 0 | Aucune 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