CFF and OpenType Font Subsetting – funkce

PDF Filter Support

 

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 name a vrátí název písma PostScript, pokud je přítomen

 

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

HPDFType1Core, HPDFType1Glyphs, HPDFType1CFFHandler a HPDFType1PFBHandler poskytují opakovaně použitelné čtečky bajtových polí, extrakci příkazů obrysů glyphů Type 1, parsování CFF Header / INDEX / dictionary / charset / encoding a metadata Type 1 PFB plus pomocné funkce pro lookup glyphů. HPDFType1CB poskytuje vstupní bod parseru vhodný pro C++Builder. Unity jsou zahrnuty v projektech balíčků Delphi a C++Builder, takže aplikace mohou kontrolovat data Type 1 PFB a CFF bez opětovné implementace binárních parserů

 

Viz také: EnableFontSubsetting, FontEmbedding, PDF Filter Support