Uso delle metriche TrueType portabili
Le applicazioni che usano le metriche di testo TrueType possono ottenere un livello elevato di portabilità della stampante e del documento; possono usare le metriche TrueType anche se devono mantenere la compatibilità con le versioni iniziali a 16 bit di Windows.
Le larghezze di progettazione superano la maggior parte dei problemi del testo dipendente dal dispositivo introdotto dai dispositivi fisici. Le larghezze di progettazione sono una sorta di larghezza logica. Indipendentemente da eventuali problemi di rasterizzazione o trasformazioni di ridimensionamento, ogni glifo ha una larghezza logica e un'altezza. Composto in una pagina logica, ogni carattere in una stringa ha una posizione indipendente dalla larghezza del dispositivo fisico. Anche se una larghezza logica implica che le larghezze possono essere ridimensionate in modo lineare in tutti i punti, questo non è necessariamente vero per i tipi di carattere nonportabili o trueType. In punti più piccoli, alcuni glifi vengono resi più ampi rispetto all'altezza per migliorare la leggibilità.
I caratteri nei tipi di carattere principali TrueType sono progettati in base a una griglia 2048 entro il 2048. La larghezza della struttura è la larghezza di un carattere in queste unità griglia. TrueType supporta qualsiasi dimensione della griglia integer fino a 16.384 per 16.384. Le dimensioni della griglia che sono potenze intere di 2 scalano più velocemente rispetto ad altre dimensioni della griglia.
La struttura del carattere è progettata in unità notzionali. Il quadrato em è la griglia notzionale su cui è montato il contorno del carattere. È possibile utilizzare il membro otmEMSquare di OUTLINETEXTMETRIC e il membro ntmSizeEM di NEWTEXTMETRIC per recuperare le dimensioni del quadrato em in unità notionali. Quando viene creato un tipo di carattere con una dimensione punto (in unità di dispositivo) uguale alla dimensione del quadrato em, le larghezze ABC per questo tipo di carattere sono le larghezze di progettazione desiderate. Si supponga, ad esempio, che le dimensioni di un quadrato em siano 1000 e che le larghezze ABC di un carattere nel tipo di carattere siano 150, 400 e 150. Un carattere in questo tipo di carattere con 10 unità di misura del dispositivo ha una larghezza ABC pari rispettivamente a 1,5, 4 e 1,5. Poiché la modalità di mapping MM_TEXT viene usata più comunemente con i tipi di carattere (e MM_TEXT equivale alle unità dispositivo), si tratta di un semplice calcolo.
A causa della risoluzione elevata delle larghezze di progettazione TrueType, le applicazioni che le usano devono tenere conto dei valori numerici di grandi dimensioni che è possibile creare. Per altre informazioni, vedere gli argomenti seguenti: