aspose.info
IT

CFF2 - Formato file font compatto versione 2

Aggiornato

Che cos’è un file CFF2?

Il formato di file CFF2 è la versione 2.0 del formato di file CFF e consente l’archiviazione efficiente di contorni di glifi e metadati simili al formato di file CFF. CFF2 differisce da CFF in quanto è concepito per essere utilizzato nel contesto di un font OpenType come tabella ‘sfnt’ con il tag CFF2. Non può essere utilizzato come programma autonomo e dipende dai dati in altre tabelle OpenType.

Formato file CFF2

Le Specifiche del formato file CFF2 contengono dettagli sul layout dei dati interni, i tipi di dati, le tabelle e altre informazioni interne sul formato del file. Può essere fatto riferimento per riferimento allo sviluppatore. Alcuni dei dettagli su questi sono i seguenti.

Disposizione dei dati

I dati binari del formato file CFF2 sono organizzati logicamente come un numero di strutture dati separate. Il layout all’interno dei dati binari è come mostrato nella tabella seguente.

InserimentoCommenti
IntestazionePosizione fissa
Top DICTPosizione fissa
INDICE SOTTOSCRITTO GlobalePosizione fissa
VarianteNegozio
FDSelectPresentato solo se è presente più di un Font DICT nel Font DICT INDEX.
INDICE DICT font
Matrice di caratteri DICTIncluso nel carattere DICT INDEX.
DICT privatoUno per carattere DICT.

Solo le prime tre strutture sono basate su postazioni fisse. I rimanenti vengono raggiunti tramite offset e il loro ordinamento può essere modificato.

Tipi di dati

Il formato di file CFF2 utilizza i seguenti tipi di dati.

NomeIntervalloDescrizione
uint8da 0 a 255numero senza segno a 8 bit
uint160 a 65535Numero senza segno a 16 bit
uint320 a 4294967295Numero senza segno a 32 bit
SpostamentovariaOffset di 1, 2, 3 o 4 byte (specificato dal campo OffSize in una tabella Indice)
OffSizeda 1 a 4Il numero senza segno a 1 byte specifica la dimensione di uno o più campi Offset

Memorizza tutti i dati numerici multibyte e i campi di offset in ordine di byte big-endian. Il formato CFF2 è privo di byte di riempimento in quanto non rispetta alcuna restrizione di allineamento.

Dati DICT

I file CFF2 contengono i dati del dizionario dei caratteri come coppie chiave-valore in un formato tokenizzato compatto. Le chiavi del dizionario sono codificate come operatori a 1 o 2 byte ei valori del dizionario sono codificati come operandi numerici di dimensione variabile. Esistono tre strutture che utilizzano il formato dati DICT: Top DICT, Font DICT e Private DICT. Un certo numero di tipi di operandi interi di dimensioni variabili sono definiti e codificati come mostrato nella tabella seguente (il primo byte dell’operando è b0, il secondo è b1 e così via).

TagliaIntervallo b0Intervallo di valoriCalcolo del valore
1da 32 a 246da -107 a +107b0 - 139
2da 247 a 250da +108 a +1131(b0 - 247) * 256 + b1 + 108
2da 251 a 254da -1131 a -108-(b0 - 251) * 256 - b1 - 108
328da -32768 a +32767b1 « 8
529-(2^31) a +(2^31 - 1)b1 « 24 | b2 « 16 | b3 « 8 | b4

Intestazione

I dati binari iniziano con un’intestazione con il formato mostrato nella tabella seguente.

TipoNomeDescrizione
uint8majorVersionFormatta la versione principale. Impostare su 2.
uint8minorVersionFormatta la versione minore. Impostare a zero.
uint8headerSizeDimensione dell’intestazione (byte).
uint16topDictLengthLunghezza della struttura DICT superiore in byte.

Riferimenti

Vedi anche