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;
Formar endast ett valt UTF-16-intervall med anroparens faktiska OpenType-typsnitt, samtidigt som hela det omgivande stycket behålls som HarfBuzz pre-context och post-context
FirstUnit är en nollbaserad UTF-16-offset och UnitCount är en UTF-16-längd; ingen av gränserna får dela ett surrogatpar, och ett intervall med längden noll returnerar inga glyfer
FriBidi löser inbäddningsnivåerna från hela stycket; HarfBuzz tar emot det lösta skriptet och formar valda poster inom varje visuell run, och bevarar arabiska fogande former och speglade skiljetecken
Returnerade SourceOffset-värden är relativa till det valda intervallet, UnicodeText bevarar varje faktiskt valt kluster, och glyph-advances och -offset använder typsnittskoordinater med 1000 enheter
CharacterAdvance tillämpas en gång per format kluster, utom ett kluster som enbart innehåller Unicode-riktningskontroller; WordAdvance tillämpas på ett U+0020-kluster, och båda måste vara ändliga och använda samma koordinater som Advance
ParagraphDirection kan bevara ett befintligt vänster-till-höger- eller höger-till-vänster-stycke när en fysisk radbruten rad formas vars första starka tecken skiljer sig från originalets stycke
De befintliga gränserna för indata och glyfer, typsnittstäckningskontrollerna, cancellation token och kraven på nativa runtime-beroenden gäller också för denna funktion
Ett partiellt intervall behåller fogande kontext men positionerar inte självständigt en annorlunda stylad kombinerande mark mot en bas-glyph från ett annat typsnitt; använd full klusterformning när ett typsnitt täcker hela klustret
Se HPDFShapeHeadlessText, HPDFResolveHeadlessTextOrder och kontextuella rich text-appearances