Преобразует двунаправленный текст Unicode в визуальные последовательности глифов для TPdf.AddShapedText, с ограниченными размерами входных и выходных данных и расширяемым базовым классом шейпера
| API | Purpose |
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 | Имя, которое сообщает активный бэкенд — для журналирования и для того, чтобы отличать одно развёртывание от другого |
| Type | Description |
EPdfTextShapingError | Исключение, возникающее при недопустимых входных данных, нарушении лимитов ресурсов, ошибках данных шрифта или сбоях движка шейпинга |
TPdfTextDirection | ptdAuto, 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 |