Gestione dei tipi di carattere personalizzata

Importante

È consigliabile 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 stampanti.

Per altre informazioni, vedere la guida alla progettazione dell'app di supporto stampa.

Per le stampanti PCL , Unidrv supporta il download di tipi di carattere soft come bitmap o struttura TrueType. Per i tipi di carattere del dispositivo, Unidrv supporta i formati di comando PCL, CAPSL e PPDS. Per altri formati, il codice di gestione dei tipi di carattere personalizzato deve essere fornito in un plug-in di rendering. È possibile implementare il set seguente di metodi IPrintOemUni:

IPrintOemUni::D ownloadFontHeader
Usato per ottenere le informazioni sull'intestazione di un carattere soft da Unidrv e quindi scaricare le informazioni nella stampante.

IPrintOemUni::D ownloadCharGlyph
Usato per scaricare glifi di carattere soft nella stampante.

IPrintOemUni::OutputCharStr
Usato per controllare la stampa di caratteri.

IPrintOemUni::SendFontCmd
Usato 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
Usato per specificare il formato del glifo che l'oggetto Unidrv deve usare quando invia un 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 conversione degli oggetti.

Per i tipi di carattere della cartuccia, le descrizioni dei tipi di carattere possono essere fornite nelle DLL delle risorse e specificate usando le voci delle cartucce di 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 di metriche dei tipi di carattere unidrv

Ogni tipo di carattere del dispositivo supportato da una stampante rappresenta un file Unidrv Font Metrics (.ufm). Un file ufm è un file binario costruito usando le strutture descritte in Strutture metriche carattere Unidrv. La prima struttura in un file ufm è UNIFM_HDR, che contiene offset nelle altre strutture del file. Nella figura seguente viene illustrato il layout di un file Diidrv Font Metrics.

diagramma che illustra il layout di un file di metriche del tipo di carattere unidrv.

Unidrv supporta anche file con estensione ifi, i file di 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 (.gtt). Un file con estensione gtt è un file binario costruito usando le strutture descritte in Strutture tabella di traduzione glifi unidrv. La prima struttura in un file con estensione gtt è una struttura UNI_GLYPHSETDATA , che contiene offset nelle altre strutture del file.

Nella figura seguente viene illustrato il layout di un file di tabella di traduzione glifo.

diagramma che illustra il layout di un file di tabella di traduzione glifi.

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 traduzione 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 di cartuccia non specificati usando le voci delle cartucce di carattere in un file GPD, i tipi di carattere devono essere descritti in un file Formato carattere Unidrv (.uff). È inoltre necessario specificare tipi di carattere soft PCL scaricabili usando un file con estensione uff.

Un file con estensione uff è un file binario costruito usando i set di strutture seguenti:

Nella figura seguente viene illustrato il layout di un file di formato carattere Unidrv.

diagramma che illustra il layout di un file di formato carattere unidrv.

Un file Formato carattere Unidrv è costituito da una struttura UFF_FILEHEADER e una o più coppie di struttura UFF_FONTDIRECTORY e DATA_HEADER . Ogni DATA_HEADER struttura è associata a un blocco di dati del tipo di carattere. La struttura UFF_FILEHEADER contiene l'offset dall'inizio del file alla prima struttura UFF_FONTDIRECTORY . Ogni struttura UFF_FONTDRECTORY contiene l'offset dall'inizio del file a una struttura DATA_HEADER contenente 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 è la responsabilità del software di installazione del tipo 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 del tipo 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 sotto la chiave del Registro di sistema di ogni stampante. La tabella seguente elenca 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 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 cartuccia. 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 cartucce di carattere che potrebbero essere installate nella 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 cartuccia di carattere a una stampante, l'amministratore di sistema deve eseguire il programma di installazione del tipo 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 del carattere deve rimuovere le descrizioni dei tipi di carattere dal file con estensione uff specificato da "ExtFontCartFile" quando viene rimossa una cartuccia.