CFF and OpenType Font Subsetting Functions

PDF Filter Support

 

Sus  EnableFontSubsetting  Cuprins

Aceste funcții la nivel de unit expun suprafața publică CFF, OpenType-CFF și sfnt pentru inspecție de fonturi folosită de pipeline-ul de fonturi încorporate al HotPDF. HotPDF include și units reutilizabile de parser Type 1 PFB și CFF pentru apelanții care au nevoie de inspecție de font la nivel inferior

 

Sintaxă 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;

 

Descriere

HPDFSubsetCFF rescrie în loc încărcătura unui font CFF, păstrând ID-urile glifelor și înlocuind CharStrings și subrutinele nefolosite cu stubs minimale. Acesta este helperul pentru apelanții care au extras deja un tabel CFF dintr-un container de font

 

HPDFSfntIsOTF detectează un container sfnt a cărui versiune este OTTO. HPDFOTFFindCFFTable localizează tabelul încorporat 'CFF '. HPDFSubsetOTFContainer combină acești pași prin subțierea tabelului CFF încorporat și returnarea unui container OTF cu aspectul original al tabelelor sfnt păstrat. HPDFExtractTTFPostScriptName citește name ID 6 din tabelul name al sfnt și returnează numele PostScript al fontului atunci când este prezent

 

Subsetterul recunoaște atât CFF cu cheie după nume (un singur Private DICT, un singur Local Subr INDEX), cât și CFF cu cheie CID (operatorul Top DICT ROS, FDArray cu mai multe Private DICT-uri de subfont, harta FDSelect glyph-to-FD, Local Subr INDEX-uri per FD). Suportul CID acoperă fonturile OpenType-CFF CJK / Indic / Arabic; scanarea de închidere urmărește contextul FD al fiecărui CharString păstrat, astfel încât Local Subr INDEX-urile per FD să fie subsetate independent

 

Decodoarele de întregi CFF de nivel inferior, parser-ele FDArray / FDSelect și scanerele de subrutine sunt detalii de implementare din spatele acestei suprafețe publice de helper

 

Unități parser Type 1 și CFF

HPDFType1Core, HPDFType1Glyphs, HPDFType1CFFHandler și HPDFType1PFBHandler oferă cititoare reutilizabile pentru array-uri de octeți, extragerea comenzilor de contur ale glifelor Type 1, parsarea CFF Header / INDEX / dictionary / charset / encoding și metadata Type 1 PFB plus helper-e de căutare a glifelor. HPDFType1CB oferă un punct de intrare pentru parser prietenos cu C++Builder. Unitățile sunt incluse în proiectele pachet Delphi și C++Builder, astfel încât aplicațiile să poată inspecta date Type 1 PFB și CFF fără a reimplementa parserele binare

 

Vezi și: EnableFontSubsetting, FontEmbedding, PDF Filter Support