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 luego elimina los recursos nombrados que no se referencian en el ámbito de recursos aplicable
Las opciones predeterminadas recorren Form XObjects, patrones de mosaico, glifos Type 3, apariencias de anotaciones y grupos de máscara suave, conservan los espacios de color referenciados por imágenes y otros recursos, eliminan arreglos /ProcSet obsoletos y categorías de recursos vacías, y recopilan objetos indirectos que quedan inaccesibles tras la limpieza
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 basado en 1 que usa 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 para purgar recursos |
| Stats | Recibe contadores de análisis, seguridad, eliminación y objetos huérfanos |
Opciones
| PDF_RESOURCE_PURGE_RECURSE_FORMS | Examina los Form XObjects 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 la limpieza cuando un flujo de contenido contiene un operador desconocido |
| PDF_RESOURCE_PURGE_DRY_RUN | Informa las entradas con nombre que se pueden eliminar sin modificar el documento |
| PDF_RESOURCE_PURGE_GARBAGE_COLLECT | Recopila objetos indirectos que quedaron inalcanzables después de la limpieza en vivo |
| PDF_RESOURCE_PURGE_RECURSE_PATTERNS | Examina el contenido y el ámbito de recursos independiente de los patrones de mosaico referenciados |
| PDF_RESOURCE_PURGE_RECURSE_TYPE3 | Analiza cada secuencia CharProc en las fuentes Type 3 referenciadas mediante el ámbito de recursos de fuente |
| PDF_RESOURCE_PURGE_RECURSE_APPEARANCES | Examina las secuencias de apariencia de anotaciones normales, de rollover, de pulsación y de estado con nombre |
| PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKS | Examina los flujos de grupos de transparencia a los que hacen referencia los diccionarios de máscaras suaves ExtGState |
| PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIES | Inspecciona XObjects de imagen, máscaras explícitas, imágenes de máscara suave e imágenes alternativas en busca de dependencias anidadas |
| PDF_RESOURCE_PURGE_RECURSE_DEPENDENCIES | Combina el análisis de dependencias de patrones, Type 3, apariencia, 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, la eliminación de categorías vacías y la recolección de basura |
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 se pueden eliminar |
| 0 | No hay entradas con nombre que se puedan eliminar, no hay páginas seleccionadas o no hay un documento cargado |
Observaciones
El análisis reconoce referencias Font, XObject, ExtGState, ColorSpace, Pattern, Shading y Properties, incluidos espacios de color personalizados en diccionarios de imágenes en línea y dependencias indirectas transportadas por objetos de recursos
El cierre de dependencias abarca espacios de color de imagen y sombreado, bases Indexed, alternativas Separation y DeviceN, espacios subyacentes Pattern, alternativas ICCBased, contenido de patrones de mosaico, todos los CharProcs Type 3, estados de apariencia de anotaciones, grupos de máscara suave ExtGState, máscaras de imagen, imágenes de máscara suave e imágenes alternativas
Los nombres PDF se comparan distinguiendo mayúsculas de minúsculas y todas las capas de contenido de cada página seleccionada se combinan antes de la limpieza
Los flujos malformados y los operadores desconocidos conservan todo su ámbito de recursos a menos que se establezca PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWN
Los diccionarios de recursos compartidos y heredados se copian antes de modificarse, de modo que la limpieza permanece local a la página, Form, patrón, fuente Type 3, apariencia o grupo de máscara suave seleccionados
Los flujos y las entradas de dependencias repetidos reutilizan resultados de análisis almacenados en caché, mientras que los límites de profundidad y el seguimiento de flujos activos terminan 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