PDFium Delphi Component Docs

FPdfTextShaping jednotka

Jednotka: FPdfTextShaping
Převádí obousměrný text Unicode na vizuální běhy glyfů pro TPdf.AddShapedText, s ohraničenými velikostmi vstupu i výstupu a rozšiřitelnou základní třídou shaperu

Pracovní postup

APIPurpose
ShapePdfText(Text, FontName, FontSize, Direction, out Shaped)Tvaruje text vestavěnou implementací Windows Uniscribe s výchozími limity zdrojů
TPdfTextShaper.ShapeAbstraktní kontrakt tvarování pro vlastní enginy vracející identifikátory glyfů, clustery, vizuální běhy, posuvy a vybraná data fontu
TPdfUniscribeTextShaper.ShapePoužívá usp10.dll k segmentaci, tvarování, umístění a vizuálnímu přeřazení běhů textu
TPdfTextShapingOptions.DefaultVrací automatický směr s limity 1,000,000 znaků, 2,000,000 glyfů a 100,000 běhů
ConfigureTextShaper(Shaper)Nainstaluje tvarovací backend, který jednotka používá, a na zbytek procesu nahradí vestavěný; jednotka převezme vlastnictví instance
ClearTextShaperOdebere nainstalovaný backend a vrátí se k platformnímu výchozímu
ActiveTextShaperBackend aktuálně používaný, nebo nil, když na této platformě není k dispozici žádný shaper
ActiveTextShaperNameNázev, který aktivní backend hlásí; hodí se pro logování i pro rozlišení jednotlivých nasazení

Veřejné typy

TypeDescription
EPdfTextShapingErrorVýjimka vyvolaná při neplatných vstupech, porušení limitů zdrojů, selhání dat fontu nebo chybách tvarovacího enginu
TPdfTextDirectionptdAuto, ptdLeftToRight nebo ptdRightToLeft
TPdfShapedGlyphJeden glyf s GlyphID, Advance, OffsetX, OffsetY, ClusterStart a ClusterLength
TPdfShapedGlyphsDynamické pole záznamů TPdfShapedGlyph
TPdfShapedRunJeden vizuální běh s TextStart, TextLength, VisualX, Width, BidiLevel, IsRightToLeft a Glyphs
TPdfShapedRunsDynamické pole záznamů TPdfShapedRun ve vizuálním pořadí
TPdfShapedTextZdrojový Text, zvolený FontName, FontSize, vložená FontData, tvarované Runs, celková Width, GlyphCount a LogicalCharacterCount
TPdfTextShapingOptionsLimity zdrojů Direction, MaxCharacters, MaxGlyphs a MaxRuns
TPdfTextShaperAbstraktní základní třída pro tvarovací implementaci dodanou volajícím
TPdfUniscribeTextShaperVestavěná implementace TPdfTextShaper pro Windows

Poznámky

Příklad

var
  Shaped: TPdfShapedText;
  MeasuredWidth: Single;
begin
  if ShapePdfText(Text, 'Segoe UI', 12, ptdAuto, Shaped) then
    MeasuredWidth := Shaped.Width;
end;

Viz také

TPdf.AddShapedText