CFF and OpenType Font Subsetting Functions

PDF Filter Support

 

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