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