HPDFShapeHeadlessText
function HPDFShapeHeadlessText(const Text: UnicodeString;
const FontBytes: SysUtils.TBytes; MaximumGlyphs: Integer;
CancellationToken: THPDFCancellationToken;
MaximumLineAdvance: Double = 0; CharacterAdvance: Double = 0;
WordAdvance: Double = 0): THPDFHeadlessShapedGlyphs;
Nutzt eine aufruferseitige OpenType-Schrift über HarfBuzz und löst Unicode-visuelle Runs über FriBidi auf, mit behaltenen Clustern und Positionierung in 1000-Unit-Font-Koordinaten
CR/LF-Absätze werden unabhängig geshaped; ein positives MaximumLineAdvance fordert logisches Cluster-Wrapping vor dem finalen Shaping-Durchlauf an
Automatische physische Zeilen erben die directionalen Embeddings, Overrides, Isolates und gepaarten Klammern des ursprünglichen vollständigen Absatzes; jede Zeile hat ihren eigenen Whitespace-Reset, visuelle Reorder- und HarfBuzz-Joining-Kontext
Die Absatzreihenfolge wird einmal aufgelöst und ohne Mutation über physische Zeilen hinweg wiederverwendet; ein echter CR/LF-Separator startet einen neuen Absatz und setzt den Kontrollzustand zurück
Wenn automatisches Wrapping den Text ändert, bleibt SourceOffset relativ zur normalisierten gewrappten logischen Sequenz, einschließlich eingefügter U+000A-Zeilenumbrüche und der bestehenden Entfernung eines Break-Space; Glyphen-UnicodeText, Feldwerte und PDF-ActualText bewahren ihre etablierten logischen Verträge
CharacterAdvance und WordAdvance sind optionale endliche Advances in denselben 1000-Unit-Font-Koordinaten; der Character-Advance greift einmal pro geshaptem Cluster, einschließlich des finalen Clusters, außer bei Clustern, die nur Unicode-Directional-Controls enthalten, und der Word-Advance greift bei einem U+0020-Cluster; beide fließen in logisches Wrapping und die zurückgegebenen Glyphen-Advances ein
Input- und erzeugte Glyphen, einschließlich eingefügter Line-Break-Records, sind durch dasselbe Gesamte MaximumGlyphs begrenzt; missgebildete Surrogate und fehlende erforderliche Glyphen schlagen fehl, und Abbruch wird zwischen Absätzen, Runs, gecachter Zeilenauflösung und Wrapping-Checkpoints geprüft
Linux nutzt libharfbuzz.so.0 und libfribidi.so.0; Windows verlangt architekturpassende Libraries, mit optionalen expliziten Pfaden über HOTPDF_HARFBUZZ_LIBRARY und HOTPDF_FRIBIDI_LIBRARY
Für PDF-Font-Berechtigungen, CID-Objekte, ToUnicode, Appearance-Links und inkrementelle Ausgabe nutzen Sie HPDFBuildHeadlessTextAppearance oder eine Dokument-Appearance-Methode
Windows native complex text beschreibt passende Prozessarchitekturen und Runtime-Dependency-Suchpfade
Nutzen Sie HPDFShapeHeadlessTextSpan, um ein ausgewähltes Stilelement mit umgebendem Absatzkontext zu shapen, und HPDFResolveHeadlessTextOrder, um echte Unicode-Visuelle-Positionen zu inspizieren