HPDFShapeHeadlessTextStyledSpan

function HPDFShapeHeadlessTextStyledSpan(const Context: UnicodeString;
  FirstUnit, UnitCount: Integer; const Order: THPDFHeadlessTextOrder;
  const FontBytes: SysUtils.TBytes; MaximumGlyphs: Integer;
  CancellationToken: THPDFCancellationToken;
  CharacterAdvance, WordAdvance: Double;
  CSSLetterSpacing, CSSWordSpacing: Boolean): THPDFHeadlessShapedGlyphs;

Deklarováno v HPDFHeadlessShaping; tato funkce shapeuje UTF-16 span s jeho kompletním okolním kontextem a dřív rozřešeným vizuálním pořadím, s dodaným runtime HarfBuzz a FriBidi a bajty písma

FirstUnit je zero-based UTF-16 offset a UnitCount vybírá požadovaný span; volající musí dodat kompatibilní order data a kladný rozpočet MaximumGlyphs

CharacterAdvance a WordAdvance používají normalizované advancy 1000-font-unit, nikoli PDF body; point spacing přepočítejte přes body * 1000 / fontSize ještě před voláním

Surové advancy musí být konečné a jejich absolutní hodnoty nejvýše 1000000000000000, s tím že se počítá s nativním point rozpočtem při minimální podporované kladné velikosti písma; appearance buildery vynucují své samostatné autorské i spočtené point limity

CSSLetterSpacing zapne tracking v typografických jednotkách a zacházení s volitelnými ligaturami; CSSWordSpacing zapne půlspacing kolem clusterů SPACE a NBSP, včetně oddělovacích značek, podle ohraničeného spacing profilu

Vrácené advancy a offsety glyfů zahrnují vyžádaný spacing; SpacingAdvance zaznamenává jeho příspěvek, zatímco TypographicUnit, CursiveUnit a WordSeparator dodávají metadata hranic pro rich fyzicko-řádkový composer

Zrušení se kontroluje při klasifikaci i shapingu a selhání rozpočtu glyfů či poškozeného vstupu používá stávající kontrakt shaping výjimek; tato funkce nepublikuje PDF ani nevlastní bajty písma ani token volajícího

Stávající shaping vstupní body si ponechávají původní sémantiku; Pascal a C++Builder konzumenty znovu sestavte s odpovídajícím veřejným glyfovým záznamem a generovanými hlavičkami