Che cos’è un file TTF?
Un file con estensione .ttf rappresenta i file dei caratteri basati sulla tecnologia dei caratteri delle specifiche TrueType. Inizialmente è stato progettato e lanciato da Apple Computer, Inc per Mac OS e successivamente è stato adottato da Microsoft per Windows OS. I font TrueType forniscono la massima qualità di visualizzazione su schermi di computer e stampanti senza alcuna dipendenza dalla risoluzione. Tutte le moderne applicazioni che utilizzano i caratteri sono in grado di funzionare con i file TTF. I file di font TTF sono disponibili gratuitamente su Internet e possono anche essere convertiti in altri formati di file di font come OTF e WOFF.
Breve storia
Progettato da Apply Computer, Inc negli anni ‘80 per MacOS, il formato del carattere TTF mirava a risolvere alcune limitazioni tecniche del formato Type 1 di Adobe. Apple ha incluso il supporto per i caratteri TrueType in Mac nel 1991. L’obiettivo di progettazione dietro i caratteri TTF era l’efficienza nell’archiviazione, nell’elaborazione e nell’estendibilità. Sulla base di questa estensibilità, i caratteri esistenti possono essere convertiti nel formato TrueType.
Microsoft ha utilizzato per la prima volta i caratteri TrueType in Windows 3.1 nell’aprile 1992 dopo che Apple ha accettato di concedere in licenza TrueType a Microsoft. Ha migliorato il meccanismo di rasterizzazione e ne ha migliorato l’efficienza e le prestazioni.
Specifiche del formato file True Type
Un file di font TrueType è un file binario costituito da una sequenza di tabelle concatenate. Ogni tabella è una sequenza di parole e ha un nome noto come ‘Tag’. Ciascun tag è di tipo dati uint32 ed è composto da quattro caratteri. La prima tabella nel file è la directory dei font che dà accesso ad altre tabelle nel file dei font. I dati dei caratteri sono contenuti in altre tabelle seguite dalla tabella della directory dei caratteri. Poiché ogni tabella è accessibile tramite il relativo tag, le tabelle possono essere visualizzate in qualsiasi ordine nel file.
Le tabelle richieste e i relativi nomi di tag sono mostrati nella tabella seguente.
Tag | Tabella |
---|---|
‘cmap’ | mappatura da carattere a glifo |
‘glifo’ | dati glifo |
’testa’ | intestazione del carattere |
’eh’ | intestazione orizzontale |
‘hmtx’ | metrica orizzontale |
’località' | indice alla posizione |
‘maxp’ | profilo massimo |
’nome' | denominazione |
‘posta’ | PostScript |
Tipi di dati
I caratteri TrueType utilizzano il numero intero standard e tipi di dati aggiuntivi come elencato nella tabella seguente.
Tipo di dati | Descrizione |
---|---|
breve Frac | Frazione con segno a 16 bit |
Risolto | Numero in virgola fissa con segno a 16,16 bit |
FWord | Intero con segno a 16 bit che descrive una quantità in FUnits, la più piccola distanza misurabile nello spazio em. |
uFWord | Intero senza segno a 16 bit che descrive una quantità in FUnits, la più piccola distanza misurabile nello spazio em. |
F2Punto14 | Numero fisso con segno a 16 bit con i 14 bit bassi che rappresentano la frazione. |
longDateTime | Il formato interno lungo di una data in secondi dalla mezzanotte 12:00 del 1 gennaio 1904. È rappresentato come un intero a 64 bit con segno. |
Directory dei caratteri
La prima tabella nel font TrueType è la directory dei font che fornisce l’accesso alle informazioni necessarie per accedere ai dati in altre tabelle. Si compone inoltre di:
Sottotabella offset
- tiene traccia delle tabelle nel carattere e fornisce informazioni sull’offset per accedere a ciascuna tabella nella directoryTable Directory
- Contiene voci per ogni tabella nel carattere
Sottotabella offset
La sottotabella offset è mostrata di seguito.
Tipo | Nome | Descrizione |
---|---|---|
uint32 | tipo ablatore | Un tag per indicare lo scaler OFA da utilizzare per rasterizzare questo font; per ulteriori informazioni, vedere la nota sul tipo di ablatore di seguito. |
uint16 | numTabelle | numero di tabelle |
uint16 | intervallo di ricerca | (potenza massima di 2 <= numTables)*16 |
uint16 | Selettore voci | log2(potenza massima di 2 <= numTables) |
uint16 | rangeShift | numTables*16-searchRange |
Directory della tabella
La directory della tabella arriva subito dopo la sottotabella offset. La sua struttura è quella mostrata nella tabella seguente.
Tipo | Nome | Descrizione |
---|---|---|
uint32 | etichetta | Identificatore a 4 byte |
uint32 | checksum | checksum per questa tabella |
uint32 | sfalsare | offset dall’inizio di sfnt |
uint32 | lunghezza | lunghezza di questa tabella in byte (lunghezza effettiva non lunghezza imbottita) |
Ciascuna tabella in un file di font deve avere la propria voce di directory della tabella. Le voci in una tabella devono essere ordinate in ordine crescente per tag.