|
Функции за поднабор на CFF и OpenType шрифтове
|
Горе EnableFontSubsetting Съдържание |
|
Тези функции на ниво единица излагат публичната повърхност за инспекция на CFF, OpenType-CFF и sfnt шрифтове, използвана от вградения шрифтов pipeline на HotPDF. HotPDF също доставя повторно използваеми единици за парсване на Type 1 PFB и CFF за ползватели, които се нуждаят от инспекция на шрифтове на по-ниско ниво
Delphi синтаксис 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 шрифтов товар на място, запазва идентификаторите на глифовете и заменя неизползваните CharStrings и подпрограми с минимални stub-ове. Това е помощната функция за извикващи, които вече са извлекли CFF таблица от шрифтов контейнер
HPDFSfntIsOTF разпознава sfnt контейнер, чиято версия е OTTO. HPDFOTFFindCFFTable намира вградената 'CFF ' таблица. HPDFSubsetOTFContainer комбинира тези стъпки, като подрязва вградената CFF таблица и връща OTF контейнер с оригиналното разположение на sfnt таблицата. HPDFExtractTTFPostScriptName чете name ID 6 от sfnt
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 покрива CJK / Indic / Arabic OpenType-CFF шрифтове; closure scan-ът проследява FD контекста на всеки запазен CharString, така че per-FD Local Subr INDEXes да се subset-ват независимо
Помощните функции на по-ниско ниво за декодиране на CFF цели числа, парсерите FDArray / FDSelect и скенерите за подпрограми са детайли по имплементацията зад тази публична помощна повърхност
Модули за парсване на Type 1 и CFF
Виж също: EnableFontSubsetting, FontEmbedding, Поддръжка на PDF филтри |