aspose.info
SV

CFF2 - Compact Font File Format version 2

Uppdaterad

Vad är en CFF2 fil?

CFF2-filformatet är version 2.0 av CFF-filformatet och möjliggör effektiv lagring av glyfkonturer och metadata som liknar CFF-filformatet. CFF2 skiljer sig från CFF genom att den är avsedd att användas i ett OpenType-teckensnitt som en ‘sfnt’-tabell med taggen CFF2. Det kan inte användas som ett fristående program och beror på data i andra OpenType-tabeller.

CFF2 filformat

CFF2 filformatspecifikationer innehåller information om intern datalayout, datatyper, tabeller och annan intern information om filformatet. Det kan hänvisas till utvecklarens referens. Några av detaljerna om dessa är följande.

Datalayout

Binära data i CFF2-filformatet är logiskt organiserade som ett antal separata datastrukturer. Layouten inom binära data är som visas i följande tabell.

EntryKommentarer
RubrikFast plats
Topp DICTFast plats
Global Subr INDEXFast plats
VariationButik
FDSäljVisas endast om det finns mer än en Font DICT i Font DICT INDEX.
Teckensnitt DICT INDEX
Array of Font DICTIngår i Font DICT INDEX.
Privat DICTEn per typsnitt DICT.

Endast de tre första strukturerna är baserade på fasta platser. Återstående nås via offset och deras beställning kan ändras.

Datatyper

Filformatet CFF2 använder följande datatyper.

NamnOmfångBeskrivning
uint80 till 2558-bitars osignerat nummer
uint160 till 6553516-bitars osignerat nummer
uint320 till 429496729532-bitars osignerat nummer
Offsetvarierar1, 2, 3 eller 4 byte förskjutningar (anges av OffSize-fältet i en indextabell)
OffSize1 till 41-byte osignerat nummer anger storleken på ett eller flera förskjutningsfält

Den lagrar alla multi-byte numeriska data och offsetfält i big-endian byteordning. CFF2-formatet är fritt från utfyllnadsbytes eftersom det inte respekterar några inriktningsbegränsningar.

DICT-data

CFF2-filer innehåller teckensnittslexikondata som nyckel-värdepar i ett kompakt tokeniserat format. Ordboksnycklar är kodade som 1 eller 2 byte-operatorer och ordboksvärden kodas som numeriska operander med variabel storlek. Det finns tre strukturer som använder DICT-dataformatet: Top DICT, Font DICT och Private DICT. Ett antal heltalsoperandtyper av varierande storlek definieras och kodas som visas i följande tabell (första byten av operanden är b0, den andra är b1 och så vidare).

Storlekb0-intervallVärdeintervallVärdeberäkning
132 till 246-107 till +107b0 - 139
2247 till 250+108 till +1131(b0 - 247) * 256 + b1 + 108
2251 till 254-1131 till -108-(b0 - 251) * 256 - b1 - 108
328-32768 till +32767b1 « 8
529-(2^31) till +(2^31 - 1)b1 « 24 | b2 « 16 | b3 « 8 | b4

Rubrik

Den binära datan börjar med en rubrik med formatet som visas i tabellen nedan.

TypNamnBeskrivning
uint8majorVersionFormatera större version. Ställ in på 2.
uint8minorVersionFormat mindre version. Ställ in på noll.
uint8headerSizeRubrikstorlek (byte).
uint16topDictLengthLängd på Top DICT-struktur i byte.

Referenser

Se även