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

PageRangeUn 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
OptionsUna combinación bit a bit de las constantes de opciones de purga de recursos
StatsRecibe contadores de examen, seguridad, eliminación y objetos huérfanos

Opciones

PDF_RESOURCE_PURGE_RECURSE_FORMSExamina los Form XObject referenciados y respeta su ámbito de recursos propio o heredado
PDF_RESOURCE_PURGE_REMOVE_PROCSETElimina las matrices /ProcSet obsoletas
PDF_RESOURCE_PURGE_REMOVE_EMPTYElimina diccionarios vacíos de categorías de recursos
PDF_RESOURCE_PURGE_AGGRESSIVE_UNKNOWNPermite realizar la limpieza cuando un flujo de contenido contiene un operador desconocido
PDF_RESOURCE_PURGE_DRY_RUNInforma de entradas con nombre eliminables sin modificar el documento
PDF_RESOURCE_PURGE_GARBAGE_COLLECTRecopila los objetos indirectos que han quedado inaccesibles después de la limpieza de los objetos activos
PDF_RESOURCE_PURGE_RECURSE_PATTERNSExamina el contenido y el ámbito independiente de recursos de los patrones de mosaico referenciados
PDF_RESOURCE_PURGE_RECURSE_TYPE3Examina cada flujo CharProc de las fuentes Type 3 referenciadas utilizando el ámbito de recursos de la fuente
PDF_RESOURCE_PURGE_RECURSE_APPEARANCESExamina los flujos de apariencia normal, rollover, pulsada y de estado con nombre de una anotación
PDF_RESOURCE_PURGE_RECURSE_SOFT_MASKSExamina los flujos de grupos de transparencia a los que hacen referencia los diccionarios de máscara suave ExtGState
PDF_RESOURCE_PURGE_SCAN_IMAGE_DEPENDENCIESExamina 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_DEPENDENCIESCombina el análisis de dependencias de patrones, Type 3, apariencias, máscaras suaves e imágenes
PDF_RESOURCE_PURGE_DEFAULTCombina 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 cleanupEl número de entradas de recursos con nombre eliminadas
Dry runEl número de entradas de recursos con nombre que pueden eliminarse
0No 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