Condividi tramite


Metriche per documenti portatili

Nella tabella seguente vengono specificate le metriche di carattere più importanti per le applicazioni che richiedono documenti portatili e le funzioni che consentono a un'applicazione di recuperarle.

Funzione Metrica Uso
EnumFontFamilies ntmSizeEM Recupero delle metriche di progettazione; conversione in metriche del dispositivo.
GetCharABCWidths ABCWidths Posizionamento accurato dei caratteri all'inizio e alla fine dei margini, limiti dell'immagine e altre interruzioni di testo.
GetCharWidth32 AdvanceWidths Posizionamento di caratteri su una riga.
GetOutlineTextMetrics otmfsType Bit di incorporamento dei tipi di carattere.
otmsCharSlopeRise Componente Y per la pendenza del cursore per i tipi di carattere corsivo.
otmsCharSlopeRun Componente X per la pendenza del cursore per i tipi di carattere corsivo.
otmAscent Interlinea.
otmDescent Interlinea.
otmLineGap Interlinea.
otmpFamilyName Identificazione del tipo di carattere.
otmpStyleName Identificazione del tipo di carattere.
otmpFullName Identificazione dei caratteri (in genere, nome di famiglia e stile).

 

I membri otmsCharSlopeRise, otmsCharSlopeRun, otmAscent, otmDescent e otmLineGap della struttura OUTLINETEXTMETRIC vengono ridimensionati o trasformati per corrispondere alla modalità del dispositivo corrente e all'altezza fisica corrente, come specificato nel membro tmHeight della struttura NEWTEXTMETRIC .

L'identificazione dei caratteri è importante in tali istanze quando un'applicazione deve selezionare lo stesso tipo di carattere, ad esempio quando un documento viene riaperto o spostato in un sistema operativo diverso. Il mapper del tipo di carattere seleziona sempre il tipo di carattere corretto quando un'applicazione richiede un carattere in base al nome completo. I nomi di famiglia e stile forniscono input alla finestra di dialogo tipo di carattere standard, che garantisce che le barre di selezione siano posizionate correttamente.

I valori otmsCharSlopeRise e otmsCharSlopeRun vengono usati per produrre un'approssimazione vicina dell'angolo corsivo principale del tipo di carattere. Per i tipi di carattere romano tipici, otmsCharSlopeRise è 1 e otmsCharSlopeRun è 0. Per i tipi di carattere corsivo, i valori tentano di approssimare il sine e il cosine dell'angolo corsivo principale del tipo di carattere (in gradi antiorario passato verticale); si noti che l'angolo corsivo per i tipi di carattere verticale è 0. Poiché questi valori non sono espressi nelle unità di progettazione, non devono essere convertiti in unità dispositivo.

Le metriche di posizionamento e spaziatura dei caratteri consentono a un'applicazione di calcolare le interruzioni di riga indipendenti dal dispositivo che sono portabili tra schermi, stampanti, tipi e piattaforme.

Per eseguire il layout di pagina indipendente dal dispositivo

  1. Normalizzare tutte le metriche di progettazione a un valore UHR (ultra-high resolution) comune (ad esempio, 65.536 DPI); ciò impedisce errori di round-off.
  2. Interruzioni di riga di calcolo in base alle metriche UHR e alla larghezza della pagina fisica; in questo modo viene restituito un punto iniziale e un punto finale di una riga all'interno del flusso di testo.
  3. Calcolare la larghezza della pagina del dispositivo nelle unità dispositivo, ad esempio pixel.
  4. Adattare ogni riga di testo alla larghezza della pagina del dispositivo usando le interruzioni di riga calcolate nel passaggio 2.
  5. Calcolare le interruzioni di pagina usando le metriche UHR e la lunghezza della pagina fisica; in questo modo viene restituito il numero di righe per pagina.
  6. Calcolare le altezze di linea nelle unità del dispositivo.
  7. Adattare le righe di testo nella pagina usando le righe per pagina dal passaggio 5 e l'altezza della linea dal passaggio 6.

Se tutte le applicazioni adottano queste tecniche, gli sviluppatori possono virtualmente garantire che i documenti spostati da un'applicazione a un'altra manterranno l'aspetto e il formato originali.