Tipi di carattere incorporati
L'incorporamento di un tipo di carattere è la tecnica di raggruppamento di un documento e dei tipi di carattere contenuti in un file per la trasmissione a un altro computer. L'incorporamento di un tipo di carattere garantisce che un tipo di carattere specificato in un file trasmesso sia presente nel computer che riceve il file. Non tutti i tipi di carattere possono essere spostati dal computer al computer, tuttavia, poiché la maggior parte dei tipi di carattere è concessa in licenza a un solo computer alla volta. È possibile incorporare solo i tipi di carattere TrueType e OpenType.
Le applicazioni devono incorporare un carattere in un documento solo quando richiesto da un utente. Un'applicazione non può essere distribuita insieme ai documenti che contengono tipi di carattere incorporati, né può contenere un carattere incorporato. Ogni volta che un'applicazione distribuisce un carattere, in qualsiasi formato, i diritti proprietari del proprietario del tipo di carattere devono essere riconosciuti.
Può essere una violazione dei diritti proprietari o del contratto di licenza utente di un fornitore di tipi di carattere per incorporare i tipi di carattere in cui l'incorporamento non è consentito o non è possibile osservare le linee guida seguenti per l'incorporamento dei tipi di carattere. La licenza di un tipo di carattere può concedere solo l'autorizzazione di lettura/scrittura per l'installazione e l'uso di un tipo di carattere nel computer di destinazione. Oppure la licenza può concedere l'autorizzazione di sola lettura. L'autorizzazione di sola lettura consente di visualizzare e stampare un documento (ma non modificato) dal computer di destinazione; i documenti con tipi di carattere incorporati di sola lettura sono di sola lettura. I tipi di carattere incorporati di sola lettura potrebbero non essere scollegati dal documento e installati nel computer di destinazione.
Un'applicazione può determinare lo stato della licenza chiamando la funzione GetOutlineTextMetrics ed esaminando il membro otmfsType della struttura OUTLINETEXTMETRIC . Se il bit 1 di otmfsType è impostato, l'incorporamento non è consentito per il tipo di carattere. Se bit 1 è chiaro, il tipo di carattere può essere incorporato. Se è impostato bit 2, l'incorporamento è di sola lettura.
Per incorporare un tipo di carattere TrueType, un'applicazione può usare la funzione GetFontData per leggere il file di carattere. L'impostazione dei parametri dwTable e dwOffset di GetFontData su 0L e il parametro cbData su 1L garantisce che l'applicazione legge l'intero file di carattere dall'inizio.
Diverse funzioni sono disponibili per incorporare i tipi di carattere OpenType a seconda della larghezza dei caratteri e della posizione in cui risiedono i dati del tipo di carattere. Per incorporare un carattere Unicode OpenType che risiede in un contesto di dispositivo, un'applicazione può usare TTEmbedFont. Per incorporare un carattere OPENType UCS-4 che risiede in un contesto del dispositivo, un'applicazione può usare TTEmbedFontEx. Per incorporare un carattere Unicode OpenType che risiede in un file di carattere, un'applicazione può usare TTEmbedFontFromFile. Per altre informazioni sull'incorporamento dei tipi di carattere OpenType, vedere Riferimento all'incorporamento dei tipi di carattere.
Dopo aver recuperato i dati del tipo di carattere, un'applicazione può archiviare i dati con il documento usando qualsiasi formato applicabile. La maggior parte delle applicazioni compila una directory del carattere nel documento, elencando i tipi di carattere incorporati e se l'incorporamento è di sola lettura/scrittura o di sola lettura. Un'applicazione può usare i membri otmpStyleName e otmFamilyName della struttura OUTLINETEXTMETRIC per identificare il tipo di carattere.
Se il bit di sola lettura è impostato per il tipo di carattere incorporato, le applicazioni devono crittografare i dati del tipo di carattere prima di archiviarla con il documento. Il metodo di crittografia non deve essere complicato; ad esempio, l'uso dell'operatore XOR per combinare i dati del tipo di carattere con una costante definita dall'applicazione è adeguata e veloce.