Optimización de recursos e imágenes
HotPDF puede reducir el tamaño del documento cargado sin cambiar la semántica del estado de gráficos de la página ni romper los recursos heredados ni las apariencias de anotaciones
Consolidación de contenido y recursos
Las imágenes inline repetidas pueden convertirse en image XObjects compartidos una vez que se alcanzan los umbrales de ocurrencias y de payload
Los nombres de recursos de página sin uso se eliminan de forma conservadora tras escanear el contenido de la página, los Form XObjects anidados y los streams de apariencia de anotaciones
Los streams de contenido de página compatibles se decodifican, se unen con límites de token seguros y se normalizan a un único stream Flate
Los Form XObjects y las fuentes incrustadas se deduplican a partir de contenido decodificado canónico y grafos de recursos canónicos recursivos, con los prefijos de subset de fuentes compatibles normalizados durante la comparación
Subsetting de fuentes cargadas
SubsetLoadedFonts rastrea los códigos de carácter a través del contenido de la página, los Form XObjects anidados y los streams de apariencia de anotaciones, resuelve cada código mediante la codificación de fuente PDF y el mapeo CID, y luego retiene solo los programas de glifos alcanzables
Los diccionarios de fuentes, los mapas CID, los widths y los datos ToUnicode conservan sus identificadores existentes porque el subsetting de TrueType, CFF y Type 1 preserva los glyph IDs o los nombres de glifos; los programas incrustados compartidos agregan el uso de todos los diccionarios de fuentes compatibles antes de una única reescritura
Las dependencias de contornos compuestos TrueType y COLR v0/v1 se cierran recursivamente mientras las tablas de color, bitmap, variaciones y shaping permanecen intactas; los programas Type 1 PFB, binarios divididos y PFA hexadecimales preservan los CharStrings usados y reemplazan las entradas no usadas con programas endchar válidos de igual longitud
La operación omite un programa de fuente completo cuando algún código usado no puede mapearse, adopta solo un candidato crudo o Flate más pequeño, y rechaza por defecto los documentos firmados, de modo que el llamador debe aceptar explícitamente la invalidación de la firma
Políticas de imágenes
La recompresión JPEG selecciona espacios de color elegibles, calidad de salida y ahorro mínimo de bytes
La optimización JPEG 2000 soporta perfiles sin pérdida y visualmente sin pérdida, tiles opcionales y los cinco órdenes de progresión mediante un perfil explícito no deshabilitado
La recompresión por costo visual evalúa pruebas acotadas de calidad JPEG o JPEG 2000 contra la fuente decodificada, rechaza candidatos fuera de los límites de error perceptual o de ahorro mínimo, y selecciona el puntaje más bajo de error visual y costo de bytes ponderados con desempate determinista
Los datos globales JBIG2 se comparten solo cuando los bytes exactos del segmento global decodificado coinciden bajo jbspExactGlobalsOnly
El downsampling por DPI efectivo sigue las matrices de página y de Form anidados, decodifica píxeles de fuente con gestión de color y remuestrea los soft masks junto con sus imágenes propietarias
La reescritura de color de imágenes convierte las entradas ICCBased, CalGray y CalRGB soportadas a RGB calibrado, mientras que las entradas calibradas no soportadas permanecen intactas en lugar de convertirse a RGB process
DownsampleLoadedImages redimensiona directamente en el espacio de componentes las imágenes Separation o DeviceN soportadas de 8 bits crudas, Flate, LZW, ASCII y RunLength, preservando el grafo exacto de espacios de color, el tint transform, los colorantes, los rangos /Decode y la semántica de overprint
Las imágenes spot DCT, JPX, JBIG2 y CCITT permanecen sin cambios cuando su códec no puede exponer las muestras originales de la plancha
Use la reescritura de color de páginas cargadas cuando la salida requerida sea un espacio process uniforme Gray, RGB o CMYK en pinturas vectoriales, imágenes, patterns, shadings, transparencia y recursos ICC
Object-streams adaptativos
El empaquetado de object-streams puede acotar el tamaño de los miembros, los bytes del contenedor objetivo y el conteo de miembros, preservando la localidad de números de objeto y excluyendo los objetos sucios con probabilidad de volver a cambiar
Activar el empaquetado adaptativo también solicita la versión de PDF requerida, el stream de xref y la reescritura completa
APIs principales
THotPDF.ExternalizeRepeatedInlineImagesTHotPDF.RemoveUnusedLoadedPageResourcesTHotPDF.CoalesceLoadedPageContentStreamsTHotPDF.DeduplicateLoadedFormXObjectsTHotPDF.DeduplicateLoadedEmbeddedFontsTHotPDF.SubsetLoadedFontsTHotPDF.RecompressLoadedJPEGImagesTHotPDF.OptimizeLoadedJPEG2000ImagesTHotPDF.OptimizeLoadedImagesByVisualCostTHotPDF.ShareLoadedJBIG2GlobalsTHotPDF.DownsampleLoadedImagesTHotPDF.RewriteLoadedPageColorsTHotPDF.ConfigureAdaptiveObjectStreamPacking