|
CFF and OpenType Font Subsetting Functions
|
Вгору EnableFontSubsetting Зміст |
|
Ці unit-level functions expose public CFF, OpenType-CFF і sfnt font-inspection surface, used by embedded font pipeline HotPDF HotPDF також ships reusable Type 1 PFB і CFF parser units для callers, яким потрібна lower-level font inspection
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 переписує payload CFF font на місці, зберігаючи glyph IDs і замінюючи unused CharStrings та subroutines мінімальними stubs Це helper для callers, які вже витягнули CFF table з font container
HPDFSfntIsOTF визначає sfnt container з version OTTO HPDFOTFFindCFFTable знаходить embedded table 'CFF ' HPDFSubsetOTFContainer поєднує ці кроки: subsets embedded CFF table і returns OTF container з preserved original sfnt table layout HPDFExtractTTFPostScriptName reads name ID 6 from sfnt name table і returns PostScript font name when present
Subsetter recognizes both name-keyed CFF (single Private DICT, single Local Subr INDEX) and CID-keyed CFF (Top DICT ROS operator, FDArray of multiple sub-font Private DICTs, FDSelect glyph-to-FD map, per-FD Local Subr INDEXes) CID support covers CJK / Indic / Arabic OpenType-CFF fonts; closure scan tracks each kept CharString's FD context so per-FD Local Subr INDEXes independently subsetted
Lower-level CFF integer decoders, FDArray / FDSelect parsers і subroutine scanners є implementation details behind this public helper surface
Type 1 and CFF parser units HPDFType1Core, HPDFType1Glyphs, HPDFType1CFFHandler і HPDFType1PFBHandler надають повторно використовувані читачі байтових масивів, витяг команд контурів гліфів Type 1, розбір CFF Header / INDEX / dictionary / charset / encoding, а також метадані Type 1 PFB і допоміжні засоби пошуку гліфів. HPDFType1CB надає зручну для C++Builder точку входу парсера. Модулі включено до пакетних проєктів Delphi і C++Builder, тому застосунки можуть перевіряти дані Type 1 PFB і CFF без повторної реалізації двійкових парсерів
See also: EnableFontSubsetting, FontEmbedding, PDF Filter Support |