aspose.info
NL

CFF2 - Compact Font File Format versie 2

Bijgewerkt

Wat is een CFF2-bestand?

Het CFF2-bestandsformaat is de versie 2.0 van het CFF-bestandsformaat en maakt een efficiënte opslag van glyph-contouren en metadata mogelijk, vergelijkbaar met het CFF-bestandsformaat. CFF2 verschilt van CFF doordat het bedoeld is om te worden gebruikt in de context van een OpenType-lettertype als een ‘sfnt’-tabel met de tag CFF2. Het kan niet worden gebruikt als een op zichzelf staand programma en is afhankelijk van gegevens in andere OpenType-tabellen.

CFF2-bestandsindeling

De CFF2-specificaties voor bestandsindelingen bevat details over de interne gegevenslay-out, gegevenstypen, tabellen en andere interne informatie over de bestandsindeling. Het kan worden doorverwezen ter referentie van de ontwikkelaar. Enkele details hierover zijn als volgt.

Gegevenslay-out

De binaire gegevens van het CFF2-bestandsformaat zijn logisch georganiseerd als een aantal afzonderlijke gegevensstructuren. De lay-out binnen de binaire gegevens is zoals weergegeven in de volgende tabel.

InvoerOpmerkingen
KoptekstVaste locatie
Top DICTVaste locatie
Global Subr INDEXVaste locatie
VariatieOpslaan
FDSelectAlleen presenteren als er meer dan één Font DICT in de Font DICT INDEX is.
Lettertype DICT INDEX
Array van lettertype DICTOpgenomen in lettertype DICT INDEX.
Privé DICTEén per lettertype DICT.

Alleen de eerste drie structuren zijn gebaseerd op vaste locaties. De overige worden bereikt via offsets en hun volgorde kan worden gewijzigd.

Gegevenstypen

Het CFF2-bestandsformaat gebruikt de volgende gegevenstypen.

NaamBereikBeschrijving
uint80 tot 2558-bits niet-ondertekend nummer
uint160 tot 6553516-bits niet-ondertekend nummer
uint320 tot 429496729532-bits niet-ondertekend nummer
Offsetvarieert1, 2, 3 of 4 byte offsets (gespecificeerd door OffSize veld in een Index tabel)
UitGrootte1 tot 41-byte unsigned nummer specificeert de grootte van een Offset veld of velden

Het slaat alle multi-byte numerieke gegevens en offsetvelden op in big-endian bytevolgorde. Het CFF2-formaat is vrij van opvulbytes omdat het geen uitlijningsbeperkingen respecteert.

DICT-gegevens

CFF2-bestanden bevatten de font-woordenboekgegevens als sleutel-waardeparen in een compacte tokenized-indeling. Woordenboeksleutels worden gecodeerd als operatoren van 1 of 2 bytes en woordenboekwaarden worden gecodeerd als numerieke operanden van variabele grootte. Er zijn drie structuren die het DICT-gegevensformaat gebruiken: Top DICT, Font DICT en Private DICT. Er is een aantal integere operandtypen van verschillende grootte gedefinieerd en gecodeerd zoals weergegeven in de volgende tabel (eerste byte van operand is b0, tweede is b1, enzovoort).

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

Koptekst

De binaire gegevens beginnen met een kop met het formaat dat wordt weergegeven in de onderstaande tabel.

TypeNaamBeschrijving
uint8majorVersionGrote versie formatteren. Instellen op 2.
uint8minorVersieKleinere versie opmaken. Zet op nul.
uint8kopgrootteHeadergrootte (bytes).
uint16topDictLengteLengte van Top DICT-structuur in bytes.

Referenties

Zie ook