Apariencias de anotaciones y campos OpenType CFF

Los builders de apariencias nativos aceptan fuentes OpenType OTTO con contornos CFF 1 además de su entrada TrueType existente

Las apariencias de texto plain, rich, shaped y family incrustan el archivo OpenType original completo mediante FontFile3 con Subtype OpenType y un descendiente CIDFontType0

El CFF con clave por nombre usa índices de glifo como CIDs, mientras que el CFF con clave CID retiene su Registry, Ordering, Supplement y mapeo charset reales de índices de glifo a CIDs

El Encoding CMap generado mapea códigos de carácter del texto a los CIDs reales; los 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 fragments rich y combining marks; los fragments rich comparten readers de fuente inmutables por estilo y un único recurso de fuente incrustada

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 apariencia normal puede usar un recurso de apariencia predeterminada válido que contenga una fuente OpenType CFF completa; se aplican la precedencia de recursos, el clipping, los colores y la política de incrustación read-only existentes

La generación de campos editables sigue requiriendo permiso installable o editable; el fallback read-only permite permiso preview-and-print, mientras que los contornos restricted o bitmap-only siguen rechazándose y no-subsetting retiene cada byte de la fuente original

Los presupuestos de bytes de fuente, glifos, tamaño de objeto, fuente rich agregada, cancelación y render nativo siguen aplicándose; los offsets INDEX CFF malformed, diccionarios, rangos de charset, CIDs duplicados y cadenas de colección faltantes se rechazan antes de publicar

El mapeo de formato sigue ISO 32000-1:2008 9.7.4.2 y 9.9, incluido el mapeo charset explícito de OpenType con clave CID

El rendering nativo, MuPDF y Ghostscript pasan los fixtures OpenType sparse-CID; los backends Poppler probados tienen una incompatibilidad separada de mapeo OpenType sparse-CID, mientras que los controles Poppler OpenType identity-CID y CIDFontType0C raw sparse renderizan correctamente

Los lectores independientes pueden sintetizar una apariencia de anotación faltante de forma distinta; las apariencias generadas explícitas se verifican por separado del comportamiento de fallback de cada lector

Las apariencias de anotación faltantes también pueden retener recursos Type1, Type1C y CIDFontType0C bare originales mediante la ruta de anotaciones raw-font original; la entrada OpenType CFF2 usa el backend de apariencias de instancia predeterminada estática separado con conversión de formato explícita, en lugar de incrustar CFF2 directamente en un stream de fuente PDF 1.7

Consulte HPDFBuildHeadlessTextAppearance y TryGetCompactFontTable