HPDFBuildHeadlessTextAppearance
function HPDFBuildHeadlessTextAppearance(const Text: UnicodeString;
const TrueTypeFont: SysUtils.TBytes; FirstObjectNumber: Integer;
const Options: THPDFHeadlessTextAppearanceOptions): THPDFHeadlessTextAppearance;
Construye un Form XObject Unicode real y sus objetos de fuente usando el parser HotPDF compartido, las clases de objetos, el lector cmap, los metadatos reales de advance y descriptor TrueType, y el shaping opcional HarfBuzz/FriBidi
El bundle devuelto es dueño de siete objetos consecutivos que empiezan en un FirstObjectNumber positivo; usa el método de apariencia del documento para el registro de objetos, enlaces de campo, cifrado y salida incremental acotada
La fuente exige contornos TrueType glyf/loca con nombre, una firma sfnt y un head magic consistentes, offsets de glifos ordenados y acotados, y un cmap Unicode completo y válido contenido dentro de la extensión de tabla declarada
La búsqueda Unicode no hace fallback a mapeos Symbol ni MacRoman; los glifos ausentes se rechazan en lugar de sustituirse por un glifo visualmente no relacionado
El texto soportado es latino, griego y cirílico horizontales directos, CJK simple, Hangul precompuesto, símbolos matemáticos seleccionados y emoji aislados cuando la fuente suministrada contiene cada escalar
El layout multilínea CR/LF, el wrapping medido, las celdas comb, las rotaciones de cuarto de vuelta y los bordes rectangulares o circulares se controlan desde el registro de opciones
Con ShapeComplexText activado, los scripts complejos, las secuencias combinantes, el bidi y las ligaduras usan shaping HarfBuzz nativo y ordenación de runs FriBidi; los surrogates mal formados, los caracteres de control no soportados, los glifos ausentes, los permisos de fuente inválidos y los presupuestos agotados siguen siendo errores
Los glifos complejos reciben posicionamiento individual incluidos los offsets de shaping, mapeos ToUnicode conscientes de clusters y ActualText de marked-content que retiene el source lógico; los lectores pueden usar su propio orden de extracción de texto de anotaciones
Linux carga libharfbuzz.so.0 y libfribidi.so.0; Windows exige libharfbuzz-0.dll y libfribidi-0.dll de arquitectura coincidente, con rutas explícitas opcionales vía HOTPDF_HARFBUZZ_LIBRARY y HOTPDF_FRIBIDI_LIBRARY
Los bytes completos de la fuente original se incrustan con su nombre PostScript real, bounds, ascent, descent, ángulo italic y flag fixed-pitch; la cap height usa OS/2 cuando está disponible y en su defecto el ascender de hhea, mientras que StemV usa una estimación conservadora de descriptor fijo
Se exige incrustación installable o editable; el no-subsetting se respeta con la incrustación completa, y los permisos de incrustación restricted, preview-and-print, bitmap-only, ausentes o desconocidos se rechazan
El builder comprueba los bytes de fuente, el recuento de glifos, los tamaños de streams y diccionarios, la validez escalar y la cancelación antes de devolver un bundle propio
Ver THPDFHeadlessTextAppearanceOptions, THPDFHeadlessTextAppearance y SetTextFieldValueWithAppearance
Las fuentes OpenType CFF 1 se soportan mediante el backend de appearances de fuentes compactas, preservando la fuente completa, el mapeo CID real, el texto Unicode, las widths y la política de incrustación