Gestione dei tipi di carattere personalizzata
Importante
La piattaforma di stampa moderna è il mezzo preferito di Windows per comunicare con le stampanti. Ti consigliamo di usare il driver di classe IPP di Microsoft, insieme a Print Support Apps (PSA), per personalizzare l'esperienza di stampa in Windows 10 e 11 per lo sviluppo di dispositivi per stampanti.
Per altre informazioni, vedere Piattaforma di stampa moderna e guida alla progettazione dell'app di supporto per la stampa.
Per le stampanti PCL , Unidrv supporta il download di tipi di carattere soft come bitmap o contorni TrueType. Per i tipi di carattere del dispositivo, Unidrv supporta i formati di comando della stampante PCL, CAPSL e PPDS. Per altri formati, è necessario specificare codice di gestione dei tipi di carattere personalizzato in un plug-in di rendering. È possibile implementare il set di metodi IPrintOemUni seguente:
IPrintOemUni::D ownloadFontHeader
Utilizzato per ottenere le informazioni sull'intestazione di un tipo di carattere soft da Unidrv e quindi scaricare le informazioni nella stampante.
IPrintOemUni::D ownloadCharGlyph
Utilizzato per scaricare i glifi dei caratteri di un carattere soft nella stampante.
IPrintOemUni::OutputCharStr
Utilizzato per controllare la stampa dei caratteri.
IPrintOemUni::SendFontCmd
Utilizzato per modificare il comando di selezione dei tipi di carattere di una stampante e, se necessario, inviarlo alla stampante.
IPrintOemUni::TextOutAsBitmap
Usato per creare un'immagine bitmap di una stringa di testo.
IPrintOemUni::TTDownloadMethod
Utilizzato per specificare il formato del glifo che l'oggetto Unidrv deve utilizzare quando invia un tipo di carattere soft specificato alla stampante.
Unidrv fornisce una funzione di callback, UNIFONTOBJGetInfo, che i plug-in di rendering possono chiamare per ottenere informazioni sul tipo di carattere o sul glifo.
Per i tipi di carattere del dispositivo, le descrizioni dei tipi di carattere devono essere fornite come illustrato nella sezione File di metriche dei tipi di carattere Unidrv e nella sezione File di tabella di traduzione Glyph.
Per i tipi di carattere della stampante, le descrizioni dei tipi di carattere possono essere fornite nelle DLL delle risorse e specificate usando le voci delle munizioni di tipo carattere in un file GPD . Le descrizioni dei tipi di carattere possono essere fornite anche sotto forma di file di formato carattere Unidrv.
Per i tipi di carattere soft PCL scaricabili, le descrizioni dei tipi di carattere devono essere fornite come illustrato nella sezione File di formato carattere Unidrv.
File delle metriche dei tipi di carattere unidrv
Ogni tipo di carattere del dispositivo supportato da una stampante rappresenta un file Unidrv Font Metrics (con estensione ufm). Un file con estensione ufm è un file binario costruito usando le strutture descritte in Strutture delle metriche dei tipi di carattere Unidrv. La prima struttura in un file con estensione ufm è UNIFM_HDR, che contiene offset per le altre strutture del file. La figura seguente mostra il layout di un file Unidrv Font Metrics.
Unidrv supporta anche i file con estensione ifi, i file delle metriche dei tipi di carattere creati per Windows NT 4.0.
File di tabella di traduzione glifi
Ogni tipo di carattere del dispositivo supportato da una stampante rappresenta un file Glyph Translation Table (con estensione gtt). Un file con estensione gtt è un file binario costruito usando le strutture descritte in Strutture di tabella di traduzione glifi unidrv. La prima struttura in un file con estensione gtt è una struttura UNI_GLYPHSETDATA , che contiene offset alle altre strutture del file.
La figura seguente illustra il layout di un file di tabella di traduzione glifo.
Nella figura precedente la struttura UNI_GLYPHSETDATA contiene gli offset dall'inizio del file alla prima struttura GLYPHRUN, alla prima struttura UNI_CODEPAGEINFO e alla struttura MAPTABLE.
Unidrv supporta anche i file di conversione dei glifi creati per Windows NT 4.0, che usano la compressione RLE (Run-Length Encoding) e hanno un'estensione rle.
File di formato carattere unidrv
Per i tipi di carattere che non vengono specificati utilizzando le voci delle cartucce di carattere in un file GPD, i tipi di carattere devono essere descritti in un file Unidrv Font Format (con estensione uff). Inoltre, i tipi di carattere soft PCL scaricabili devono essere specificati usando un file con estensione uff.
Un file con estensione uff è un file binario costruito usando i set di strutture seguenti:
Strutture di formato del carattere unidrv, che definiscono il contenuto e la struttura di un file con estensione uff.
Strutture delle metriche dei tipi di carattere unidrv, che definiscono le metriche per ogni tipo di carattere.
Strutture di tabella di conversione glifi unidrv, che definiscono i set di glifi usati dai tipi di carattere.
Nella figura seguente viene illustrato il layout di un file Di formato carattere Unidrv.
Un file Unidrv Font Format è costituito da una struttura UFF_FILEHEADER e una o più coppie di strutture UFF_FONTDIRECTORY e DATA_HEADER. Ogni struttura DATA_HEADER è associata a un blocco di dati del tipo di carattere. La struttura UFF_FILEHEADER contiene l'offset dall'inizio del file al primo UFF_FONTDIRECTORY struttura. Ogni struttura UFF_FONTDRECTORY contiene l'offset dall'inizio del file a una struttura DATA_HEADER che contiene i dati del tipo di carattere.
Inoltre, per i tipi di carattere soft PCL scaricabili, i dati binari da scaricare vengono archiviati in un file con estensione uff.
La creazione dei file con estensione uff è responsabilità del software di installazione dei tipi di carattere fornito dal fornitore. Unidrv legge i file con estensione uff di una stampante per ottenere informazioni sul tipo di carattere e sul glifo. Il programma di installazione dei tipi di carattere deve modificare il contenuto del file con estensione uff quando i tipi di carattere vengono aggiunti o eliminati. Per altre informazioni sulla creazione di un programma di installazione dei tipi di carattere, vedere Programmi di installazione dei tipi di carattere personalizzati per Unidrv.
Tutti i file con estensione uff devono essere archiviati nella directory %SystemRoot%\System32\Spool\Drivers\Unifont. Per associare singoli file con estensione uff a stampanti specifiche, il software di installazione deve chiamare la funzione SetPrinterData (descritta nella documentazione di Windows SDK) per creare valori del Registro di sistema in base alla chiave del Registro di sistema di ogni stampante. Nella tabella seguente sono elencati i nomi dei valori del Registro di sistema che devono essere usati e indica il gestorio di ogni valore.
Nome e tipo del valore del Registro di sistema | Definizione del valore | Gestore |
---|---|---|
"ExternalFontFile" REG_SZ |
Nome file di un file con estensione uff che specifica i tipi di carattere installati correnti. I tipi di carattere possono essere scaricabili o contenuti in una munizione. | Programma di installazione dei tipi di carattere |
"ExtFontCartFile" REG_SZ |
Nome file di un file con estensione uff che specifica tutti i tipi di carattere contenuti in tutte le cartucce di carattere elencate per "ExtFontCartNames". | Programma di installazione dei tipi di carattere |
"ExtFontCartNames" REG_MULTI_SZ |
Nomi di tutte le munizioni di tipo carattere che potrebbero essere installate sulla stampante. | Programma di installazione dei tipi di carattere |
"FontCart" REG_MULTI_SZ |
Nomi di tutte le cartucce di carattere attualmente installate per la stampante. | Interfaccia utente Unidrv |
Dopo aver aggiunto una stampante a una stampante, l'amministratore di sistema deve eseguire il programma di installazione dei tipi di carattere, responsabile della copia delle descrizioni dei tipi di carattere dal file con estensione uff specificato da "ExtFontCartFile" nel file con estensione uff specificato da "ExternalFontFile". Analogamente, il programma di installazione dei tipi di carattere deve rimuovere le descrizioni dei caratteri dal file con estensione uff specificato da "ExtFontCartFile" quando viene rimossa una munizione.