Appearances de anotaciones y campos OpenType CFF
Los builders nativos de appearances aceptan fuentes OpenType OTTO con contornos CFF 1 además de su entrada TrueType existente
Las appearances de texto plain, rich, shaped y family incrustan el archivo OpenType original completo mediante FontFile3 con Subtype OpenType y un descendiente CIDFontType0
El CFF name-keyed usa índices de glifo como CIDs, mientras que el CFF CID-keyed retiene su Registry, Ordering, Supplement y mapeo charset reales de índices de glifo a CIDs
La CMap Encoding generada mapea códigos de caracteres de texto a los CIDs reales; las widths usan esos CIDs, ToUnicode retiene el texto lógico, y CIDFontType0 no recibe CIDToGIDMap
Las posiciones y extensiones de glifos usan métricas OpenType de HarfBuzz, incluidos los bounds de fragmentos rich y de signos combinantes; los fragmentos rich comparten lectores de fuente inmutables por estilo y un recurso de fuente incrustado
Las métricas CFF requieren una librería HarfBuzz de arquitectura coincidente incluso cuando ShapeComplexText es False; HOTPDF_HARFBUZZ_LIBRARY selecciona una ruta explícita, y el shaping complejo usa además la dependencia FriBidi existente
Una anotación FreeText visible sin appearance normal puede usar un recurso de default-appearance válido que contenga una fuente OpenType CFF completa; se aplican la precedencia de recursos existente, el clipping, los colores y la política de incrustación de solo lectura
La generación de campos editables sigue requiriendo permiso instalable o editable; el fallback de solo lectura permite el permiso preview-and-print, mientras que los contornos restricted o bitmap-only siguen rechazándose, y no-subsetting retiene cada byte original de la fuente
Los presupuestos de bytes de fuente, glifos, tamaño de objeto, fuentes rich agregadas, cancelación y render nativo siguen aplicándose; los offsets INDEX CFF mal formados, los diccionarios, los rangos de charset, los CIDs duplicados y las strings de colección ausentes se rechazan antes de la publicación
El mapeo de formatos sigue ISO 32000-1:2008 9.7.4.2 y 9.9, incluido el mapeo charset OpenType CID-keyed explícito
El rendering nativo, MuPDF y Ghostscript pasan los fixtures OpenType de CIDs dispersos; los backends Poppler probados tienen una incompatibilidad aparte con el mapeo OpenType de CIDs dispersos, mientras que los controles OpenType identity-CID de Poppler y CIDFontType0C crudo disperso renderizan correctamente
Los lectores independientes pueden sintetizar una appearance de anotación ausente de forma distinta; las appearances generadas explícitas se comprueban por separado del comportamiento de fallback de cada lector
Las appearances de anotación ausentes también pueden retener recursos Type1, Type1C y CIDFontType0C crudos originales mediante la ruta de anotaciones de fuente cruda original; la entrada OpenType CFF2 usa el backend de appearances de instancia por defecto aparte, con conversión de formato explícita, en lugar de incrustar CFF2 directamente en un stream de fuente PDF 1.7
Vea HPDFBuildHeadlessTextAppearance y TryGetCompactFontTable