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