Funzioni di subset dei font CFF e OpenType

PDF-filterondersteuning

 

Boven  EnableFontSubsetting  Inhoud

Deze unitniveaufuncties maken het openbare oppervlak zichtbaar voor CFF-, OpenType-CFF- en sfnt-lettertypeinspectie dat door de ingebedde lettertypepijplijn van HotPDF wordt gebruikt. HotPDF levert ook herbruikbare Type 1 PFB- en CFF-parserunits voor aanroepers die inspectie op lager niveau nodig hebben

 

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;

 

Beschrijving

HPDFSubsetCFF herschrijft een CFF-lettertypepayload ter plaatse, behoudt glyph-ID's en vervangt ongebruikte CharStrings en subroutines door minimale stubs. Dit is de helper voor aanroepers die al een CFF-tabel uit een lettertypecontainer hebben gehaald

 

HPDFSfntIsOTF detecteert een sfnt-container waarvan de versie OTTO is. HPDFOTFFindCFFTable lokaliseert de ingesloten 'CFF '-tabel. HPDFSubsetOTFContainer combineert deze stappen door de ingesloten CFF-tabel te subsetten en een OTF-container terug te geven met de oorspronkelijke sfnt-tabellay-out behouden

 

De subsetter herkent zowel naamgekoppelde CFF (één Private DICT, één Local Subr INDEX) als CID-gekoppelde CFF (Top DICT ROS-operator, FDArray met meerdere subfont Private DICT's, FDSelect glyph-naar-FD-map, per-FD Local Subr INDEX'en). CID-ondersteuning sinds v2.40.0 dekt CJK / Indic / Arabische OpenType-CFF-lettertypen zoals de Adobe Fan/Gothic/Heiti/Ming/Myungjo/Song Std-familie, Kozuka Pr6N en Source Han Sans - de closure-scan volgt van elke bewaarde CharString de FD-context zodat per-FD Local Subr INDEX'en onafhankelijk worden gesubset

 

De onderliggende CFF-integerdecoders, FDArray / FDSelect-parsers en subroutinescanners zijn implementatiedetails achter dit publieke helperoppervlak

HPDFExtractTTFPostScriptName leest name ID 6 uit de sfnt-name-tabel en geeft de PostScript-fontnaam terug wanneer die aanwezig is

 

Type 1- en CFF-parserunits

HPDFType1Core, HPDFType1Glyphs, HPDFType1CFFHandler en HPDFType1PFBHandler bieden herbruikbare byte-arraylezers, Type 1 glyph-outline-opdracht-extractie, CFF Header / INDEX / dictionary / charset / encoding-parsing en Type 1 PFB-metadata plus glyph-lookuphelpers. HPDFType1CB biedt een parseringang die vriendelijk is voor C++Builder. De units zijn opgenomen in de Delphi- en C++Builder-packageprojecten zodat toepassingen Type 1 PFB- en CFF-gegevens kunnen inspecteren zonder de binaire parsers opnieuw te implementeren

 

Zie ook: EnableFontSubsetting, FontEmbedding, PDF-filterondersteuning