Fuentes OpenType variables y de color

HotPDF puede inspeccionar los ejes fvar y las instancias con nombre, validar las coordenadas seleccionadas y producir una instancia estática antes de la instalación normal de fuentes, el subconjunto y la caché persistente

Flujo de trabajo de fuentes variables

PDF.InspectVariableFont(FontPath, Axes, Instances);
PDF.SetVariableFontAxis('wght', 650);
PDF.RegisterUnicodeTTF(FontPath);

Las fuentes OpenType CFF2 se instancian internamente en las coordenadas predeterminadas o seleccionadas, incluidos el mapeo fvar, avar 1.0 y 2.0, el estado vsindex por diccionario de fuente, la evaluación de blend, las subrutinas locales y globales recursivas y los deltas de métricas HVAR, VVAR y MVAR

Las fuentes variables TrueType con contornos glyf se instancian internamente para coordenadas no predeterminadas. La canalización evalúa las tuplas gvar compartidas y privadas, aplica la interpolación IUP, actualiza los contornos simples y los desplazamientos compuestos, resuelve las métricas de puntos fantasma horizontales y verticales, hornea MVAR, reconstruye los datos de glifo compactos y loca y elimina las tablas de variación del sfnt estático con suma de comprobación correcta

OnVariableFontInstance es opcional para fuentes variables CFF2 y TrueType. Puede anular una instancia interna no predeterminada devolviendo un sfnt estático válido sin tabla fvar

Las coordenadas resueltas permanecen disponibles mediante GetRegisteredVariableFontAxes y pasan a formar parte del contenido de fuente instalado y en caché

Instanciación, subconjunto y seguridad de bajo nivel

HPDFIsCFF2Font, HPDFInstantiateCFF2Font, HPDFSubsetCFF2Font, HPDFIsTrueTypeVariableFont y HPDFInstantiateTrueTypeVariableFont exponen flujos de trabajo de matrices de bytes para llamadores que ya gestionan contenedores de fuentes

La salida estática preserva los ID de glifo y los programas de hint mientras reconstruye las tablas sfnt y las sumas de comprobación. La ruta CFF2 también preserva los datos privados por diccionario de fuente y las matrices de fuente

Los desplazamientos malformados, las estructuras de variación no válidas, la profundidad excesiva de subrutinas, los límites de operación y los límites ampliados de CharString fallan de forma segura en lugar de devolver una fuente parcialmente instanciada

Flujo de trabajo de glifos de color

GetRegisteredColorGlyphInfo detecta capas COLR y CPAL, documentos de glifo SVG, strikes CBDT/CBLC y strikes sbix para una fuente registrada

DrawRegisteredColorGlyph dibuja capas COLR v0, grafos de pintura COLR v1 acotados, documentos SVG seguros restringidos, imágenes PNG CBDT e imágenes PNG o JPEG sbix de forma nativa

COLR v1 admite clips de glifo por capas, rellenos lineales sólidos y de varias paradas, rellenos radiales, rellenos de barrido, transformaciones afines, glifos de color reutilizables, orden de origen y destino y compuestos de fusión PDF

El perfil SVG nativo admite trazados, rectángulos, círculos, elipses, líneas, polígonos, polilíneas, rellenos y trazos sólidos heredados, transformaciones afines y documentos SVG comprimidos con gzip

THPDFColorGlyphRasterizeEvent sigue siendo la reserva para funciones SVG no admitidas, modos Porter-Duff no admitidos, opacidad, degradados y salida de ráster específica de la aplicación

THPDFOpenTypeColorGlyphInfo.COLRv1Paints expone el DAG plano validado mediante los registros THPDFCOLRv1Paint, THPDFCOLRv1ColorStop y THPDFCOLRv1Transform para su inspección sin volver a analizar los bytes de la fuente

Los llamadores eligen la paleta y el tamaño de píxel de destino para que la selección de strike y la salida de ráster permanezcan deterministas