PDFium Delphi Component Docs

AddCidType2Text Метод

Компонент: TPdf  ·  Модуль: PDFium

Syntax

function AddCidType2Text(const FontData: TBytes; const Glyphs: TPdfCidGlyphs; FontSize: Single; X, Y: Double; const Options: TPdfCidFontOptions; out Report: TPdfCidFontReport; Color: TColor = clBlack; Alpha: Byte = $FF): Boolean;

Description

Загружает переданные вызывающей стороной данные TrueType или TrueType Collection через нативный загрузчик шрифтов CID Type 2 в PDFium и добавляет один или несколько позиционированных текстовых объектов на активную страницу

Каждый TPdfCidGlyph передаёт идентификатор исходного глифа, текст Unicode, ширину (advance) и необязательное горизонтальное или вертикальное смещение

Последовательные CID изолируют повторяющиеся экземпляры глифов, поэтому один и тот же идентификатор глифа может нести разные отображения кластеров Unicode

Embedding and subsetting

pcfemFull встраивает выбранный шрифт целиком, pcfemSubsetPreferred пытается построить подмножество по списку глифов и при неудаче возвращается к полному шрифту, а pcfemSubsetRequired отклоняет операцию, если безопасное подмножество построить нельзя

Построение подмножества всегда сохраняет глиф ноль, отклоняет результат, который увеличил бы шрифт, и проверяет, что каждый запрошенный исходный GID по-прежнему существует, прежде чем данные попадут в PDFium

TTCIndex выбирает член коллекции TrueType Collection и для отдельного шрифта должен оставаться нулевым

Unicode and verification

Сгенерированная CMap ToUnicode отображает каждый последовательный CID в переданный UnicodeText, включая отображения лигатур и дополнительной плоскости, состоящие из нескольких кодовых единиц

Пустое отображение превращается в U+200B, чтобы каждый CID оставался извлекаемым и наблюдаемым

Когда включён VerifyExtraction, метод заново открывает текстовую модель страницы, читает только вставленные объекты, сравнивает результат с ExpectedText и при расхождении откатывает все вставленные объекты

Options and report

TPdfCidFontOptions.Default выбирает pcfemSubsetPreferred в качестве EmbeddingMode, включает проверку извлечения, ограничивает данные шрифта 64 MiB, экземпляры глифов — числом 65,534, а MaxUnicodeCharacters — числом 1,048,576 отображённых кодовых единиц Unicode

TPdfCidFontReport записывает общее число глифов и UniqueGlyphCount, OriginalFontBytes и EmbeddedFontBytes, SubsetAttempted, SubsetApplied, UsedFullFontFallback, SubsetErrorCode, FontEmbedded, ожидаемый и извлечённый текст, а также ExtractionMatches

Atomicity and performance

Позиции глифов вычисляются за линейное время, а глифы с общей базовой линией выпускаются одним нативным текстовым объектом

Различающиеся вертикальные смещения используют изолированные текстовые объекты с сохранением логического порядка объектов

Проверка и построение подмножества завершаются до вставки, а любой последующий нативный сбой удаляет все объекты, добавленные вызовом, до регенерации содержимого страницы

See Also

BuildToUnicodeCMap, AddShapedText, AddText, GetStructuredText