PDFium Delphi Component Docs

модул FPdfTextShaping

Модул: FPdfTextShaping
Оформя двупосочен Unicode текст в визуални глифови редове за TPdf.AddShapedText, с ограничени входни и изходни размери и разширяем базов клас за оформяне

Работен процес

APIПредназначение
ShapePdfText(Text, FontName, FontSize, Direction, out Shaped)Оформя текст с вградената Windows реализация на Uniscribe и стандартните ресурсни лимити
TPdfTextShaper.ShapeАбстрактен договор за оформяне за персонализирани машини, връщащи идентификатори на глифи, клъстери, визуални редове, напредвания и избрани шрифтови данни
TPdfUniscribeTextShaper.ShapeИзползва usp10.dll за разделяне на елементи, оформяне, поставяне и визуално пренареждане на текстовите редове
TPdfTextShapingOptions.DefaultВръща автоматична посока с лимити 1,000,000 знака, 2,000,000 глифа и 100,000 реда
ConfigureTextShaper(Shaper)Инсталира оформящия бекенд, който модулът използва, заменяйки вградения за остатъка от живота на процеса; модулът поема собствеността над инстанцията
ClearTextShaperПремахва инсталиран бекенд и връща платформеното по подразбиране
ActiveTextShaperБекендът, използван в момента, или nil, когато на тази платформа няма наличен оформител
ActiveTextShaperNameИмето, което активният бекенд докладва, за логове и за разграничаване на една инсталация от друга

Публични типове

ТипОписание
EPdfTextShapingErrorИзключение, вдигано при невалидни входни данни, нарушени ресурсни лимити, неуспехи на шрифтовите данни или грешки на оформящата машина
TPdfTextDirectionptdAuto, ptdLeftToRight или ptdRightToLeft
TPdfShapedGlyphЕдин глиф с GlyphID, Advance, OffsetX, OffsetY, ClusterStart и ClusterLength
TPdfShapedGlyphsДинамичен масив от записи TPdfShapedGlyph
TPdfShapedRunЕдин визуален ред с TextStart, TextLength, VisualX, Width, BidiLevel, IsRightToLeft и Glyphs
TPdfShapedRunsДинамичен масив от записи TPdfShapedRun във визуален ред
TPdfShapedTextИзходният Text, избраният FontName, FontSize, вградените FontData, оформените Runs, общата Width, GlyphCount и LogicalCharacterCount
TPdfTextShapingOptionsDirection и ресурсните лимити MaxCharacters, MaxGlyphs и MaxRuns
TPdfTextShaperАбстрактен базов клас за реализация на оформяне, предоставена от извикващия
TPdfUniscribeTextShaperВградената Windows реализация на TPdfTextShaper

Забележки

Пример

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

Виж също

TPdf.AddShapedText