aspose.info
DA

CFF2 - Kompakt skrifttypefilformat version 2

Opdateret

Hvad er en CFF2 fil?

CFF2 file format is the version 2.0 of the CFF file format and allows efficient storage of glyph outlines and metadata similar to the CFF file format. CFF2 differs from CFF in that it is intended to be used in the context of an OpenType font as a ‘sfnt’ table with the tag CFF2. Det kan ikke bruges som et selvstændigt program og afhænger af data i andre OpenType-tabeller.

CFF2 filformat

CFF2 file format specifications indeholder detaljer om internt datalayout, datatyper, tabeller og anden intern information om filformatet. Det kan henvises til udviklerens reference. Nogle af detaljerne om disse er som følger.

Datalayout

De binære data i CFF2-filformatet er logisk organiseret som et antal separate datastrukturer. Layoutet i de binære data er som vist i følgende tabel.

IndgangKommentarer
OverskriftFast placering
Top DICTFast placering
Global Subr INDEXFast placering
VariationButik
FDSælgVis kun, hvis der er mere end én Font DICT i Font DICT INDEX.
Skrifttype DICT INDEX
Array of Font DICTInkluderet i Font DICT INDEX.
Privat DICTEn pr. skrifttype DICT.

Kun de tre første strukturer er baseret på faste placeringer. Resterende nås via offsets, og deres bestilling kan ændres.

Datatyper

CFF2-filformatet bruger følgende datatyper.

NavnOmrådeBeskrivelse
uint80 til 2558-bit usigneret nummer
uint160 til 6553516-bit usigneret nummer
uint320 til 429496729532-bit usigneret nummer
Offsetvarierer1, 2, 3 eller 4 byte offsets (specificeret af OffSize-feltet i en indekstabel)
OffSize1 til 41-byte usigneret tal angiver størrelsen af et eller flere forskydningsfelter

Den gemmer alle multi-byte numeriske data og offset felter i big-endian byte rækkefølge. CFF2-formatet er fri for udfyldningsbytes, da det ikke overholder nogen tilpasningsrestriktioner.

DICT-data

CFF2-filer indeholder skrifttypeordbogsdataene som nøgle-værdi-par i et kompakt tokeniseret format. Ordbogsnøgler er kodet som 1 eller 2 byte-operatorer, og ordbogsværdier er kodet som numeriske operander i variabel størrelse. Der er tre strukturer, der bruger DICT-dataformatet: Top DICT, Font DICT og Privat DICT. Et antal heltalsoperandtyper af varierende størrelse er defineret og kodet som vist i følgende tabel (første byte af operand er b0, anden er b1, og så videre).

Størrelseb0 intervalVærdiintervalVærdiberegning
132 til 246-107 til +107b0 - 139
2247 to 250+108 to +1131(b0 - 247) * 256 + b1 + 108
2251 to 254-1131 to -108-(b0 - 251) * 256 - b1 - 108
328-32768 til +32767b1 « 8
529-(2^31) til +(2^31 - 1)b1 « 24 | b2 « 16 | b3 « 8 | b4

De binære data begynder med en header med formatet vist i tabel nedenfor.

TypNavnBeskrivelse
uint8majorVersionFormater større version. Indstil til 2.
uint8minorVersionFormater mindre version. Indstil til nul.
uint8headerStørrelseOverskriftsstørrelse (bytes).
uint16topDictLengthLængde af Top DICT-struktur i bytes.

Referencer

Se også