|
CFF and OpenType Font Subsetting – funkce
|
Nahoru EnableFontSubsetting Obsah |
|
Tyto funkce na úrovni unit zpřístupňují veřejnou kontrolní vrstvu CFF, OpenType-CFF a sfnt, kterou používá pipeline vkládání písem v HotPDF. HotPDF také dodává opakovaně použitelné parsery Type 1 PFB a CFF pro volající, kteří potřebují nízkoúrovňovou kontrolu písem
Syntaxe 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;
Popis HPDFSubsetCFF přepíše obsah písma CFF na místě, zachová ID glyphů a nahradí nepoužité CharStrings a podprogramy minimálními zástupnými těly. Jde o pomocnou funkci pro volající, kteří už z kontejneru písma získali tabulku CFF
HPDFSfntIsOTF rozpozná kontejner sfnt s verzí OTTO. HPDFOTFFindCFFTable najde vloženou tabulku 'CFF '. HPDFSubsetOTFContainer tyto kroky spojuje: vytvoří subset vložené tabulky CFF a vrátí kontejner OTF se zachovaným původním rozvržením tabulek sfnt. HPDFExtractTTFPostScriptName čte name ID 6 z tabulky sfnt
Subsetter rozpozná CFF klíčovaný názvy (jeden Private DICT, jeden Local Subr INDEX) i CFF klíčovaný CID (operátor Top DICT ROS, FDArray s několika Private DICT podřízených písem, mapa FDSelect glyph-to-FD a Local Subr INDEX pro každé FD). Podpora CID pokrývá písma OpenType-CFF pro CJK / Indic / Arabic; průchod uzávěrem sleduje FD kontext každého ponechaného CharString, takže Local Subr INDEX pro jednotlivá FD se subsettuje nezávisle
Nízkoúrovňové dekodéry celých čísel CFF, parsery FDArray / FDSelect a skenery podprogramů jsou implementační detaily za touto veřejnou pomocnou vrstvou
Parser unity Type 1 a CFF
Viz také: EnableFontSubsetting, FontEmbedding, PDF Filter Support |