aspose.info
DE

CFF2 - Kompaktes Schriftdateiformat Version 2

Aktualisiert

Was ist eine CFF2-Datei?

Das CFF2-Dateiformat ist die Version 2.0 des CFF-Dateiformats und ermöglicht eine effiziente Speicherung von Glyphenumrissen und Metadaten ähnlich dem CFF-Dateiformat. CFF2 unterscheidet sich von CFF darin, dass es im Zusammenhang mit einer OpenType-Schriftart als ‘sfnt’-Tabelle mit dem Tag CFF2 verwendet werden soll. Es kann nicht als eigenständiges Programm verwendet werden und hängt von Daten in anderen OpenType-Tabellen ab.

CFF2-Dateiformat

Die CFF2-Dateiformatspezifikationen enthalten Details zum internen Datenlayout, zu Datentypen, Tabellen und anderen internen Informationen zum Dateiformat. Es kann als Entwicklerreferenz verwiesen werden. Einige Details dazu sind wie folgt.

Datenlayout

Die binären Daten des CFF2-Dateiformats sind logisch als eine Anzahl separater Datenstrukturen organisiert. Das Layout innerhalb der Binärdaten ist wie in der folgenden Tabelle gezeigt.

EintragKommentare
KopfzeileFester Ort
Top DICTFester Standort
Globaler Subr-INDEXFester Standort
VariationSpeichern
FDSelectNur vorhanden, wenn mehr als ein Font DICT im Font DICT INDEX vorhanden ist.
Schriftart DICT INDEX
Array von Schriftarten DICTIn Schriftart DICT INDEX enthalten.
Privates DICTEine pro Schriftart DICT.

Nur die ersten drei Strukturen basieren auf festen Standorten. Die restlichen werden über Offsets erreicht, und ihre Reihenfolge kann geändert werden.

Datentypen

Das CFF2-Dateiformat verwendet die folgenden Datentypen.

NameBereichBeschreibung
uint80 bis 2558-Bit-Zahl ohne Vorzeichen
uint160 bis 6553516-Bit-Zahl ohne Vorzeichen
uint320 bis 429496729532-Bit-Zahl ohne Vorzeichen
Offsetvariiert1, 2, 3 oder 4 Byte-Offsets (angegeben durch das OffSize-Feld in einer Indextabelle)
OffSize1 bis 4Eine 1-Byte-Zahl ohne Vorzeichen gibt die Größe eines Offset-Felds oder von Feldern

Es speichert alle numerischen Multibyte-Daten und Offset-Felder in Big-Endian-Byte-Reihenfolge. Das CFF2-Format ist frei von Füllbytes, da es keine Ausrichtungsbeschränkungen berücksichtigt.

DICT-Daten

CFF2-Dateien enthalten die Schriftartwörterbuchdaten als Schlüssel-Wert-Paare in einem kompakten Token-Format. Wörterbuchschlüssel werden als 1- oder 2-Byte-Operatoren codiert, und Wörterbuchwerte werden als numerische Operanden mit variabler Größe codiert. Es gibt drei Strukturen, die das DICT-Datenformat verwenden: „Top DICT“, „Font DICT“ und „Private DICT“. Eine Reihe von ganzzahligen Operandentypen unterschiedlicher Größe sind definiert und wie in der folgenden Tabelle gezeigt codiert (das erste Byte des Operanden ist b0, das zweite ist b1 und so weiter).

Größeb0 BereichWertebereichWerteberechnung
132 bis 246-107 bis +107b0 - 139
2247 bis 250+108 bis +1131(b0 - 247) * 256 + b1 + 108
2251 bis 254-1131 bis -108-(b0 - 251) * 256 - b1 - 108
328-32768 bis +32767b1 « 8
529-(2^31) bis +(2^31 - 1)b1 « 24 | b2 « 16 | b3 « 8 | b4

Die Binärdaten beginnen mit einem Header mit dem in der nachstehenden Tabelle gezeigten Format.

TypNameBeschreibung
uint8HauptversionHauptversion formatieren. Auf 2 setzen.
uint8NebenversionNebenversion formatieren. Auf Null setzen.
uint8KopfzeilengrößeHeader-Größe (Byte).
uint16topDictLengthLänge der obersten DICT-Struktur in Bytes.

Verweise

Siehe auch