|
CFF and OpenType Font Subsetting Functions
|
Вверх EnableFontSubsetting Содержание |
|
Эти функции уровня модуля раскрывают публичную поверхность subsetting для CFF и OpenType-CFF fonts, используемую pipeline встроенных шрифтов HotPDF. HotPDF также поставляет переиспользуемые модули парсеров Type 1 PFB и CFF для вызывающего кода, которому нужна низкоуровневая проверка шрифтов
Delphi syntax function HPDFSubsetCFF(const CFFBytes: TBytes; const KeepGlyph: array of Boolean): TBytes; function HPDFSfntIsOTF(const Data: TBytes): Boolean; function HPDFOTFFindCFFTable(const Data: TBytes; out TableOff: Cardinal; out TableLen: Cardinal): Boolean; function HPDFSubsetOTFContainer(const OTFBytes: TBytes; const KeepGlyph: array of Boolean): TBytes; function HPDFExtractTTFPostScriptName(const Data: TBytes): AnsiString;
Описание HPDFSubsetCFF переписывает CFF font payload на месте, сохраняя glyph IDs и заменяя unused CharStrings и subroutines минимальными stubs. Это helper для callers, которые уже извлекли CFF table из font container
HPDFSfntIsOTF обнаруживает sfnt container с версией OTTO. HPDFOTFFindCFFTable находит embedded 'CFF ' table. HPDFSubsetOTFContainer объединяет эти шаги, подмножая embedded CFF table и возвращая OTF container с сохраненной original sfnt table layout
Subsetter распознает как name-keyed CFF (single Private DICT, single Local Subr INDEX), так и CID-keyed CFF (Top DICT ROS operator, FDArray из нескольких sub-font Private DICTs, FDSelect glyph-to-FD map, per-FD Local Subr INDEXes). CID support с v2.40.0 покрывает CJK / Indic / Arabic OpenType-CFF fonts; closure scan отслеживает FD context каждого kept CharString, поэтому per-FD Local Subr INDEXes подмножаются независимо
Низкоуровневые CFF-декодеры целых чисел, парсеры FDArray / FDSelect и сканеры подпрограмм являются деталями реализации за этой публичной поверхностью помощников
Type 1 and CFF parser units HPDFType1Core, HPDFType1Glyphs, HPDFType1CFFHandler и HPDFType1PFBHandler предоставляют reusable byte-array readers, Type 1 glyph-outline command extraction, CFF Header / INDEX / dictionary / charset / encoding parsing и Type 1 PFB metadata plus glyph lookup helpers. HPDFType1CB предоставляет C++Builder-friendly parser entry point. Units включены в Delphi и C++Builder package projects, чтобы applications могли проверять Type 1 PFB и CFF data без повторной реализации binary parsers
См. также: EnableFontSubsetting, FontEmbedding, PDF Filter Support |