HPDFShapeHeadlessText
function HPDFShapeHeadlessText(const Text: UnicodeString;
const FontBytes: SysUtils.TBytes; MaximumGlyphs: Integer;
CancellationToken: THPDFCancellationToken;
MaximumLineAdvance: Double = 0; CharacterAdvance: Double = 0;
WordAdvance: Double = 0): THPDFHeadlessShapedGlyphs;
Usa una fuente OpenType suministrada por el llamador a través de HarfBuzz y resuelve los runs visuales Unicode a través de FriBidi, reteniendo clusters y posicionamiento en coordenadas de fuente de 1000 unidades
Los párrafos CR/LF se procesan con shaping de forma independiente; un MaximumLineAdvance positivo solicita wrapping de clusters lógico antes de la pasada final de shaping
Las líneas físicas automáticas heredan los embeddings direccionales, overrides, isolates y brackets emparejados del párrafo completo original; cada línea tiene su propio reset de whitespace, reordenamiento visual y contexto de joining de HarfBuzz
El orden del párrafo se resuelve una vez y se reutiliza sin mutación a través de las líneas físicas; un separador CR/LF real inicia un párrafo nuevo y resetea el estado de control
Cuando el wrapping automático cambia el texto, SourceOffset permanece relativo a la secuencia lógica con wrapping normalizada, incluidos los saltos de línea U+000A insertados y la eliminación existente de un break space; el UnicodeText de glifos, los valores de campos y el ActualText del PDF conservan sus contratos lógicos establecidos
CharacterAdvance y WordAdvance son avances finitos opcionales en las mismas coordenadas de fuente de 1000 unidades; el avance de carácter aplica una vez por cluster con shaping, incluido el cluster final, salvo los clusters que contienen solo controles direccionales Unicode, y el avance de palabra aplica a un cluster U+0020, con ambos incluidos en el wrapping lógico y los avances de glifos devueltos
Los glifos de entrada y generados, incluidos los registros de saltos de línea insertados, quedan acotados por el mismo MaximumGlyphs total; los surrogados malformados y los glifos requeridos faltantes fallan, y la cancelación se verifica entre párrafos, runs, resolución de líneas en cache y checkpoints de wrapping
Linux usa libharfbuzz.so.0 y libfribidi.so.0; Windows exige librerías de arquitectura coincidente, con rutas explícitas suministradas opcionalmente por HOTPDF_HARFBUZZ_LIBRARY y HOTPDF_FRIBIDI_LIBRARY
Para los permisos de fuentes PDF, objetos CID, ToUnicode, enlaces de apariencias y salida incremental, usa HPDFBuildHeadlessTextAppearance o un método de apariencias del documento
El texto complejo nativo de Windows describe arquitecturas de proceso coincidentes y rutas de búsqueda de dependencias de runtime
Usa HPDFShapeHeadlessTextSpan para dar shaping a un ítem de estilo seleccionado con el contexto del párrafo circundante, y HPDFResolveHeadlessTextOrder para inspeccionar las posiciones visuales Unicode reales