CFF- und OpenType-Schriftartenuntergruppenbildungsfunktionen

PDF-Filterunterstützung

 

Nach oben  EnableFontSubsetting  Inhalt

Diese Funktionen auf Unit-Ebene machen die öffentliche CFF-, OpenType-CFF- und sfnt-Schriftartenprüfoberfläche verfügbar, die von HotPDFs eingebetteter Schriftarten-Pipeline verwendet wird. HotPDF liefert auch wiederverwendbare Type 1 PFB- und CFF-Parser-Units für Aufrufer, die eine tiefergehende Schriftartenprüfung benötigen

 

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;

 

Beschreibung

HPDFSubsetCFF schreibt eine CFF-Schriftart-Nutzlast an Ort und Stelle neu, wobei Glyphen-IDs erhalten bleiben und ungenutzte CharStrings sowie Subroutinen durch minimale Stubs ersetzt werden; dies ist das Hilfsmittel für Aufrufer, die bereits eine CFF-Tabelle aus einem Schriftarten-Container extrahiert haben

 

HPDFSfntIsOTF erkennt einen sfnt-Container, dessen Version OTTO ist. HPDFOTFFindCFFTable lokalisiert die eingebettete 'CFF '-Tabelle. HPDFSubsetOTFContainer kombiniert diese Schritte, indem es die eingebettete CFF-Tabelle untergruppenweise aufteilt und einen OTF-Container zurückgibt, bei dem das ursprüngliche sfnt-Tabellenlayout erhalten bleibt. HPDFExtractTTFPostScriptName liest die Namens-ID 6 aus der sfnt-name-Tabelle und gibt den PostScript-Schriftartnamen zurück, sofern vorhanden

 

Der Subsetter erkennt sowohl namensschlüsselbasierte CFF (einzelnes Private DICT, einzelner Local Subr INDEX) als auch CID-schlüsselbasierte CFF (Top DICT ROS-Operator, FDArray mit mehreren Sub-Schriftarten-Private DICTs, FDSelect Glyphen-zu-FD-Zuordnung, Local Subr INDEXes pro FD). Die CID-Unterstützung deckt CJK- / Indic- / arabische OpenType-CFF-Schriftarten ab; der Abschluss-Scan verfolgt den FD-Kontext jedes beibehaltenen CharStrings, sodass Local Subr INDEXes pro FD unabhängig voneinander untergruppenweise aufgeteilt werden

 

Die tiefergehenden CFF-Integer-Decoder, FDArray- / FDSelect-Parser und Subroutinen-Scanner sind Implementierungsdetails hinter dieser öffentlichen Hilfsmitteloberfläche

 

Type 1 und CFF Parser-Units

HPDFType1Core, HPDFType1Glyphs, HPDFType1CFFHandler und HPDFType1PFBHandler bieten wiederverwendbare Byte-Array-Reader, die Extraktion von Type 1 Glyphen-Umrissbefehlen, CFF-Header- / INDEX- / Wörterbuch- / Zeichensatz- / Codierungs-Parsing sowie Type 1 PFB-Metadaten plus Glyphen-Suchhilfen. HPDFType1CB bietet einen C++Builder-freundlichen Parser-Einstiegspunkt. Die Units sind in den Delphi- und C++Builder-Paketprojekten enthalten, sodass Anwendungen Type 1 PFB- und CFF-Daten prüfen können, ohne die binären Parser neu implementieren zu müssen

 

Siehe auch: EnableFontSubsetting, FontEmbedding, PDF-Filterunterstützung