|
CFF and OpenType Font Subsetting Functions
|
Hore EnableFontSubsetting Obsah |
|
Tieto funkcie na úrovni jednotky sprístupňujú verejnú CFF, OpenType-CFF a sfnt vrstvu na inšpekciu fontov, ktorú používa vložená fontová pipeline HotPDF. HotPDF zároveň dodáva znovupoužiteľné parserové jednotky Type 1 PFB a CFF pre volajúcich, ktorí potrebujú nižšiu úroveň inšpekcie fontov
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;
Opis HPDFSubsetCFF prepíše CFF payload písma priamo na mieste, zachová ID glyfov a nepoužité CharStrings a subrutiny nahradí minimálnymi zástupcami. Je to pomocná funkcia pre volajúcich, ktorí už z fontového kontajnera vyextrahovali tabuľku CFF
HPDFSfntIsOTF rozpozná kontajner sfnt, ktorého verzia je OTTO. HPDFOTFFindCFFTable nájde vloženú tabuľku 'CFF '. HPDFSubsetOTFContainer tieto kroky kombinuje tak, že podmnožinu vloženej tabuľky CFF vráti ako OTF kontajner so zachovaným pôvodným rozložením tabuliek sfnt. HPDFExtractTTFPostScriptName číta name ID 6 z tabuľky mien sfnt a pri prítomnosti vráti PostScript názov písma
Subsetter rozpoznáva name-keyed CFF (jedna Private DICT, jeden Local Subr INDEX) aj CID-keyed CFF (Top DICT ROS operator, FDArray viacerých sub-font Private DICT, FDSelect mapa glyfov na FD, per-FD Local Subr INDEXy). CID podpora pokrýva CJK / Indic / Arabic OpenType-CFF fonty; closure scan sleduje FD kontext každého zachovaného CharStringu, takže per-FD Local Subr INDEXy sa subsetujú nezávisle
Nižšieúrovňové CFF integer dekodéry, FDArray / FDSelect parsery a vyhľadávače subroutines sú implementačné detaily za touto verejnou pomocnou vrstvou
Type 1 and CFF parser units HPDFType1Core, HPDFType1Glyphs, HPDFType1CFFHandler a HPDFType1PFBHandler poskytujú znovupoužiteľné čítačky bajtových polí, extrakciu príkazov obrysu glyfov Type 1, parsovanie CFF Header / INDEX / dictionary / charset / encoding a pomocné funkcie pre metadata Type 1 PFB a vyhľadávanie glyfov. HPDFType1CB poskytuje vstupný bod parsera vhodný pre C++Builder. Jednotky sú zahrnuté v package projektoch Delphi aj C++Builder, aby aplikácie mohli kontrolovať dáta Type 1 PFB a CFF bez opätovnej implementácie binárnych parserov
See also: EnableFontSubsetting, FontEmbedding, PDF Filter Support |