HPDFShapeHeadlessTextSpan

function HPDFShapeHeadlessTextSpan(const Context: UnicodeString;
  FirstUnit, UnitCount: Integer; const FontBytes: SysUtils.TBytes;
  MaximumGlyphs: Integer; CancellationToken: THPDFCancellationToken;
  CharacterAdvance: Double = 0; WordAdvance: Double = 0;
  ParagraphDirection: THPDFHeadlessTextDirection = htdAuto): THPDFHeadlessShapedGlyphs;

Shapuje tylko wybrany span UTF-16 rzeczywistym fontem OpenType wywołującego, zachowując kompletny otaczający akapit jako przed- i po-kontekst HarfBuzz

FirstUnit to offset UTF-16 od zera, a UnitCount to długość UTF-16; żadna granica nie może rozcinać pary surrogate, a span zerowej długości nie zwraca glifów

FriBidi rozwiązuje poziomy osadzenia z kompletnego akapitu; HarfBuzz otrzymuje rozwiązany skrypt i shapuje wybrane elementy w każdym wizualnym runie, zachowując formy łączenia arabskiego i lustro interpunkcji

Zwrócone wartości SourceOffset są względne względem wybranego spana, UnicodeText zachowuje każdy rzeczywisty wybrany klaster, a posunięcia i offsety glifów używają współrzędnych fontu 1000 jednostek

CharacterAdvance stosuje się raz na shapowany klaster, poza klastrem zawierającym wyłącznie sterowania kierunkowe Unicode; WordAdvance stosuje się do klastra U+0020, a oba muszą być skończone i używać tych samych współrzędnych co Advance

ParagraphDirection może zachować istniejący akapit od lewej do prawej albo od prawej do lewej przy shapowaniu fizycznej zawijanej linii, której pierwszy silny znak różni się od oryginalnego akapitu

Istniejące budżety wejścia i glifów, kontrole pokrycia fontu, token anulowania i wymagania zależności natywnego runtime również obowiązują dla tej funkcji

Częściowy span zachowuje kontekst łączenia, ale nie pozycjonuje niezależnie inaczej stylowanego znacznika łączenia względem glifu bazowego z innego fontu; użyj pełnego shapowania klastra, gdy jeden font pokrywa kompletny klaster

Zobacz HPDFShapeHeadlessText, HPDFResolveHeadlessTextOrder i Kontekstowe wyglądy rich text