PurgeUnusedResources
Manipulación de documentos, optimización
Descripción
Examina las capas de contenido de la página seleccionada y sus dependencias transitivas de recursos, y elimina los recursos con nombre a los que no se hace referencia en el ámbito de recursos aplicable
Las opciones predeterminadas acceden de forma recursiva a Form XObjects, patrones de mosaico, glifos Type 3, apariencias de anotación y grupos de máscara suave; conservan los espacios de color a los que hacen referencia las imágenes y otros recursos; eliminan los arrays /ProcSet obsoletos y las categorías de recursos vacías; y recopilan los objetos indirectos que la limpieza deja inaccesibles
Sintaxis
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;
Parámetros
| PageRange | Un intervalo de páginas de base 1 que utiliza la misma sintaxis que las demás API de intervalos de páginas, o una cadena vacía para todas las páginas |
|---|---|
| Options | Una combinación bit a bit de las constantes de opciones de purga de recursos |
| Stats | Recibe contadores de examen, seguridad, eliminación y objetos huérfanos |
Opciones
| PDF_RESOURCE_PURGE_RECURSE_FORMS | Examina los Form XObject referenciados y respeta su ámbito de recursos propio o heredado |
|---|---|
| PDF_RESOURCE_PURGE_REMOVE_PROCSET | Elimina las matrices /ProcSet obsoletas |
| PDF_RESOURCE_PURGE_REMOVE_EMPTY | Elimina diccionarios vacíos de categorías de recursos |
| PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN | Permite realizar la limpieza cuando un flujo de contenido contiene un operador desconocido |
| PDF_RESOURCE_PURGE_DRY_RUN | Informa de entradas con nombre eliminables sin modificar el documento |
| PDF_RESOURCE_PURGE_GARBAGE_COLLECT | Recopila los objetos indirectos que han quedado inaccesibles después de la limpieza de los objetos activos |
| PDF_RESOURCE_PURGE_RECURSE_PATTERNS | Examina el contenido y el ámbito independiente de recursos de los patrones de mosaico referenciados |
| PDF_RESOURCE_PURGE_RECURSE_TYPE3 | Examina cada flujo CharProc de las fuentes Type 3 referenciadas utilizando el ámbito de recursos de la fuente |
| PDF_RESOURCE_PURGE_RECURSE_APPEARANCES | Examina los flujos de apariencia normal, rollover, pulsada y de estado con nombre de una anotación |
| PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKS | Examina los flujos de grupos de transparencia a los que hacen referencia los diccionarios de máscara suave ExtGState |
| PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIES | Examina XObject de imagen, máscaras explícitas, imágenes de máscara suave e imágenes alternativas para detectar dependencias anidadas |
| PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIES | Combina el análisis de dependencias de patrones, Type 3, apariencias, máscaras suaves e imágenes |
| PDF_RESOURCE_PURGE_DEFAULT | Combina todo el análisis de dependencias, la recursión de Form, la eliminación de ProcSet y categorías vacías, y la recolección de elementos no utilizados |
Valores devueltos
| Live cleanup | El número de entradas de recursos con nombre eliminadas |
|---|---|
| Dry run | El número de entradas de recursos con nombre que pueden eliminarse |
| 0 | No hay entradas con nombre eliminables, páginas seleccionadas ni documentos cargados |
Observaciones
El análisis reconoce referencias Font, XObject, ExtGState, ColorSpace, Pattern, Shading y Properties, incluidos espacios personalizados y dependencias indirectas
El cierre de dependencias cubre espacios de imágenes y sombreado, bases Indexed, alternativos Separation y DeviceN, Pattern, ICCBased, Type 3, apariencias, máscaras e imágenes alternativas
Los nombres PDF se comparan distinguiendo entre mayúsculas y minúsculas, y todas las capas de contenido de cada página seleccionada se combinan antes de la limpieza
Los flujos con formato incorrecto y los operadores desconocidos conservan todo su ámbito de recursos salvo que se establezca PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN
Los diccionarios de recursos compartidos y heredados se copian antes de modificarlos para que la limpieza siga siendo local a la página, Form, patrón, fuente Type 3, apariencia o grupo de máscara suave seleccionado
Los flujos repetidos y las entradas de dependencia reutilizan resultados de análisis almacenados en caché, mientras que los límites de profundidad y el seguimiento de flujos activos interrumpen los ciclos de recursos malformados
La cancelación está disponible mediante Abort desde un controlador OnProgress
Ejemplo
var
Stats: TPDFlibResourcePurgeStats;
Removed: Integer;
begin
Removed:= PDF.PurgeUnusedResources('1-20',
PDF_RESOURCE_PURGE_DEFAULT, Stats);
PDF.SaveToFile('optimised.pdf');
end;
Véase también
TPDFlibResourcePurgeStats, GarbageCollectObjects, OnProgress, Abort