PDFium Delphi Component Docs

Модуль FPdfTextShaping

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

Workflow

APIPurpose
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Имя, которое сообщает активный бэкенд — для журналирования и для того, чтобы отличать одно развёртывание от другого

Public types

TypeDescription
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
TPdfTextShapingOptionsОграничения ресурсов Direction, MaxCharacters, MaxGlyphs и MaxRuns
TPdfTextShaperАбстрактный базовый класс для предоставляемой вызывающим кодом реализации шейпинга
TPdfUniscribeTextShaperВстроенная реализация TPdfTextShaper для Windows

Remarks

Example

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

See Also

TPdf.AddShapedText