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 un font OpenType fornito dal chiamante tramite HarfBuzz e risolve i run visuali Unicode tramite FriBidi, conservando cluster e posizionamento in coordinate font a 1000 unità
I paragrafi CR/LF sono modellati indipendentemente; un MaximumLineAdvance positivo richiede il wrapping logico dei cluster prima della passata finale di shaping
Le righe fisiche automatiche ereditano gli embedding direzionali, override, isolates e parentesi accoppiate del paragrafo originale completo; ogni riga ha il suo reset di whitespace, riordino visuale e context di giunzione HarfBuzz
L'ordine del paragrafo è risolto una volta e riutilizzato senza mutazioni tra le righe fisiche; un separatore CR/LF reale apre un nuovo paragrafo e azzera lo stato dei controlli
Quando il wrapping automatico cambia il testo, SourceOffset resta relativo alla sequenza logica normalizzata con wrapping, interruzioni di riga U+000A inserite e consueta rimozione di uno break space incluse; UnicodeText dei glyph, valori dei campi e ActualText PDF conservano i loro consolidati contratti logici
CharacterAdvance e WordAdvance sono advance finiti opzionali nelle stesse coordinate font a 1000 unità; l'advance di carattere si applica una volta per cluster modellato, cluster finale incluso, tranne i cluster contenenti solo controlli direzionali Unicode, e l'advance di parola si applica a un cluster U+0020, con entrambi inclusi nel wrapping logico e negli advance dei glyph restituiti
I glyph di input e generati, record di interruzione di riga inseriti inclusi, sono limitati dallo stesso totale MaximumGlyphs; surrogate malformate e glyph richiesti mancanti falliscono e la cancellazione è controllata tra paragrafi, run, risoluzione delle righe in cache e checkpoint di wrapping
Linux usa libharfbuzz.so.0 e libfribidi.so.0; Windows richiede librerie di architettura corrispondente, con percorsi espliciti forniti opzionalmente da HOTPDF_HARFBUZZ_LIBRARY e HOTPDF_FRIBIDI_LIBRARY
Per permessi font PDF, oggetti CID, ToUnicode, collegamenti appearance e output incrementale, usa HPDFBuildHeadlessTextAppearance o un metodo appearance del documento
Il testo complesso nativo di Windows descrive architetture di processo corrispondenti e percorsi di ricerca delle dipendenze runtime
Usa HPDFShapeHeadlessTextSpan per modellare un item di stile selezionato con il context del paragrafo circostante e HPDFResolveHeadlessTextOrder per ispezionare le vere posizioni visuali Unicode