Administración de fuentes personalizadas
Importante
La plataforma de impresión moderna es el medio preferido de Windows para comunicarse con impresoras. Se recomienda usar el controlador de clase de bandeja de entrada IPP de Microsoft, junto con aplicaciones de soporte técnico de impresión (PSA), para personalizar la experiencia de impresión en Windows 10 y 11 para el desarrollo de dispositivos de impresora.
Para obtener más información, consulte Plataforma de impresión moderna y la Guía de diseño de aplicaciones para compatibilidad con impresión.
Para impresoras PCL, Unidrv admite la descarga de fuentes temporales como mapas de bits o esquemas TrueType. Para las fuentes del dispositivo, Unidrv admite formatos de comandos de impresora PCL, CAPSL y PPDS. Para otros formatos, el código de administración de fuentes personalizadas debe proporcionarse en un complemento de representación. Se puede implementar el siguiente conjunto de métodos IPrintOemUni:
IPrintOemUni::DownloadFontHeader
Se usa para obtener la información de encabezado de una fuente temporal de Unidrv y, a continuación, descargar la información a la impresora.
IPrintOemUni::DownloadCharGlyph
Se usa para descargar glifos de caracteres de una fuente temporal en la impresora.
IPrintOemUni::OutputCharStr
Se usa para controlar la impresión de caracteres.
IPrintOemUni::SendFontCmd
Se usa para modificar el comando de selección de fuentes del dispositivo de una impresora y, si es necesario, enviarlo a la impresora.
IPrintOemUni::TextOutAsBitmap
Se usa para crear una imagen de mapa de bits de una cadena de texto.
IPrintOemUni::TTDownloadMethod
Se usa para especificar el formato de glifo que debe usar Unidrv cuando envía una fuente temporal especificada a la impresora.
Unidrv proporciona una función de devolución de llamada, UNIFONTOBJGetInfo, que los complementos de representación pueden llamar para obtener información de fuente o glifo.
Para las fuentes del dispositivo, se deben proporcionar descripciones de fuentes como se explica en la sección Archivos de métricas de fuentes Unidrv y la sección Archivos de tabla de traducción de glifos.
En el caso de las fuentes de cartucho, se pueden proporcionar descripciones de fuentes en archivos DLL de recursos y especificarse mediante entradas de cartuchos de fuente en un archivo GPD. Las descripciones de fuentes también se pueden proporcionar en forma de archivos de formato de fuente Unidrv.
Para las fuentes temporales PCL descargables, las descripciones de fuentes deben proporcionarse como se explica en la sección Archivos de formato de fuente Unidrv.
Archivos de métricas de fuentes Unidrv
Cada fuente de dispositivo que admite una impresora representa un archivo de métricas de fuente de Unidrv (.ufm). Un archivo .ufm es un archivo binario que se construye mediante las estructuras descritas en Estructuras de métricas de fuentes Unidrv. La primera estructura de un archivo .ufm es UNIFM_HDR, que contiene desplazamientos a las otras estructuras del archivo. En la ilustración siguiente se muestra el diseño de un archivo de métricas de fuentes Unidrv.
Unidrv también admite archivos .ifi, los archivos de métricas de fuente creados para Windows NT 4.0.
Archivos de tabla de traducción de glifos
Cada fuente de dispositivo que admite una impresora representa un archivo de tabla de traducción de glifos (.gtt). Un archivo .gtt es un archivo binario construido mediante las estructuras descritas en Estructuras de tabla de traducción de glifos Unidrv. La primera estructura de un archivo .gtt es una estructura UNI_GLYPHSETDATA, que contiene desplazamientos a las otras estructuras del archivo.
En la ilustración siguiente se muestra el diseño de un archivo de tabla de traducción de glifos.
En la ilustración anterior, la estructura UNI_GLYPHSETDATA contiene los desplazamientos desde el principio del archivo hasta la primera estructura GLYPHRUN, a la primera estructura UNI_CODEPAGEINFO y a la estructura MAPTABLE.
Unidrv también admite archivos de traducción de glifo creados para Windows NT 4.0, que usan la compresión de codificación en longitud de recorrido (RLE) y tienen una extensión .rle.
Archivos de formato de fuente Unidrv
Para las fuentes de cartucho que no se especifican mediante entradas de cartuchos de fuente en un archivo GPD, las fuentes deben describirse en un archivo de formato de fuente Unidrv (.uff). Además, las fuentes temporales PCL descargables deben especificarse mediante un archivo .uff.
Un archivo .uff es un archivo binario que se construye mediante los siguientes conjuntos de estructuras:
Estructuras de formato de fuente Unidrv, que definen el contenido y la estructura de un archivo .uff.
Estructuras de métricas de fuente Unidrv, que definen las métricas para cada fuente.
Estructuras de tabla de traducción de glifos Unidrv, que definen los conjuntos de glifos utilizados por las fuentes.
En la ilustración siguiente se muestra el diseño de un archivo de formato de fuente Unidrv.
Un archivo de formato de fuente Unidrv consta de una estructura UFF_FILEHEADER y uno o varios pares de estructuras UFF_FONTDIRECTORY y DATA_HEADER. Cada estructura DATA_HEADER está asociada a un bloque de datos de fuente. La estructura UFF_FILEHEADER contiene el desplazamiento desde el principio del archivo hasta la primera estructura UFF_FONTDIRECTORY. Cada estructura UFF_FONTDRECTORY contiene el desplazamiento desde el principio del archivo a una estructura DATA_HEADER que contiene datos de fuente.
Además, para las fuentes temporales PCL descargables, los datos binarios que se van a descargar se almacenan en un archivo .uff.
La creación de archivos .uff es responsabilidad del software de instalación de fuentes suministrado por el proveedor. Unidrv lee los archivos .uff de una impresora para obtener información de fuente y glifo. El instalador de fuentes debe modificar el contenido del archivo .uff cuando se agregan o eliminan fuentes. Para obtener más información sobre cómo crear un instalador de fuentes, consulte Instaladores de fuentes personalizadas para Unidrv.
Todos los archivos .uff deben almacenarse en el directorio %SystemRoot%\System32\Spool\Drivers\Unifont. Para asociar archivos .uff individuales a impresoras específicas, el software de instalación debe llamar a la función SetPrinterData (que se describe en la documentación del SDK de Windows) para crear valores del Registro en la clave del Registro de cada impresora. En la tabla siguiente se enumeran los nombres de valor del Registro que se deben usar e indica el mantenedor de cada valor.
Nombre y tipo del valor del Registro | Definición del valor | Responsable de mantenimiento |
---|---|---|
"ExternalFontFile" REG_SZ |
Nombre de un archivo .uff que especifica las fuentes instaladas actuales. Las fuentes se pueden descargar o contener en un cartucho. | Instalador de fuentes |
"ExtFontCartFile" REG_SZ |
Nombre de un archivo .uff que especifica todas las fuentes contenidas en todos los cartuchos de fuente enumerados para "ExtFontCartNames". | Instalador de fuentes |
"ExtFontCartNames" REG_MULTI_SZ |
Nombres de todos los cartuchos de fuente que podrían instalarse en la impresora. | Instalador de fuentes |
"FontCart" REG_MULTI_SZ |
Nombres de todos los cartuchos de fuente instalados actualmente para la impresora. | Interfaz de usuario de Unidrv |
Después de agregar un cartucho de fuente a una impresora, el administrador del sistema debe ejecutar el instalador de fuentes, que es responsable de copiar descripciones de fuentes del archivo .uff especificado por "ExtFontCartFile" en el archivo .uff especificado por "ExternalFontFile". Del mismo modo, el instalador de fuentes debe quitar las descripciones de fuente del archivo .uff especificado por "ExtFontCartFile" cuando se quita un cartucho.