Escritura de un archivo GPD de PCL XL
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.
En esta sección se proporciona información general sobre cómo escribir un archivo GPD PCL XL, como los archivos que su archivo GPD debe incluir, cómo habilitar PCL XL en su archivo GPD y cómo ordenar los comandos PCL XL en un flujo PCL XL.
El Kit para controladores de Windows (WDK) contiene un archivo GPD PCL XL de ejemplo (p6sample.gpd) en el directorio \src\print\mini\mdw\vector\pcl6. (Es posible que este recurso no esté disponible en algunos idiomas y países).
Archivos para incluir
Para escribir un minicontrolador basado en GPD, use la directiva de preprocesador *Include para especificar los siguientes archivos GPD:
pclxl.gpd: contiene macros para los operadores PCL XL para que pueda escribir código GPD que sea más fácil de leer y comprender. Por ejemplo, puede escribir =BeginPage en lugar de <43>.
p6disp.gpd: contiene macros para cadenas de recursos contenidas en pcl5eres.dll y pclxl.dll.
p6font.gpd: contiene macros para fuentes contenidas en pclxl.dll.
pjl.gpd: contiene macros para comandos PJL.
Además de los archivos anteriores, incluya los archivos GPD estándar, stdnames.gpd y ttfsub.gpd.
En el ejemplo siguiente se muestra cómo se incluirían estos archivos en un archivo GPD.
*Include: stdnames.gpd
*Include: ttfsub.gpd
*Include: pclxl.gpd
*Include: p6disp.gpd
*Include: p6font.gpd
*Include: pjl.gpd
Habilitación de la compatibilidad con PCL XL en el archivo GPD
Para habilitar la compatibilidad con vectores PCL XL, solo tiene que establecer el atributo *Personality. Esto se hace de la siguiente manera:
*Personality: = PERSONALITY_PCLXL
La constante PERSONALITY_PCLXL se define en stdnames.gpd.
En el WDK se incluye un archivo GPD de ejemplo, p6sample.gpd, para ayudar a los desarrolladores a crear nuevos minicontroladores PCL XL.
Orden de los comandos de PCL XL
El orden de los comandos es más crítico en PCL XL que en PCL-5. Es probable que un pequeño error en la secuencia PCL afecte al trabajo, pero los comandos PCL XL solo son válidos en determinados puntos de la secuencia, por lo que cualquier error en PCL XL (PCL-6) hace que se emita una página de error XL. Por ejemplo, no puede enviar un operador BeginPage antes que un operador BeginSession.
Una secuencia PCL XL tiene un formato similar al siguiente. (La sangría que se muestra solo se usa para resaltar el punto en que estos operadores vienen en pares).
PJL commands
BeginSession
OpenDataSource
BeginPage
<page data>
EndPage
CloseDataSource
EndSession
PJL commands
La secuencia PCL XL va precedida y seguida de comandos PJL. La secuencia PCL XL comienza con un operador BeginSession y termina con un operador EndSession. Dentro de ese par de operadores, hay otro par de operadores: OpenDataSource y CloseDataSource. Dentro de ese par de operadores vienen uno o varios pares de operadores BeginPage/EndPage, un par para cada página enviada a la impresora. Los datos de página, que describen cómo se representa una página individual, están entre corchetes por un par de operadores BeginPage/EndPage.
Para obtener información detallada sobre todos los operadores PCL XL, consulte la documentación del protocolo de referencia de características PCL XL Class 2.0.
Información adicional sobre archivos GPD PCL XL
En los archivos GPD PCl XL, el nombre del atributo *FontFormat, que especifica la forma en que se descargan las fuentes, está restringido a dos valores: HPPCL_OUTLINE y HPPCL_RES. El primer valor indica que Unidrv debe descargar datos de esquema TrueType. El segundo valor indica que Unidrv debe descargar datos de fuentes temporales de mapa de bits.
Un IHV puede reducir el uso de memoria de la impresora limitando el número de fuentes que se van a descargar o limitando el número de caracteres que se van a descargar en una fuente determinada. Los nombres de atributo *MinFontID y *MaxFontID se usan para informar a Unidrv que debe descargar fuentes temporales cuyos identificadores se encuentren dentro del intervalo especificado por estos valores. Del mismo modo, los nombres de atributo *MinGlyphID y *MaxGlyphID se usan para limitar el número de glifos en una fuente determinada para descargarlos en un intervalo específico.
Unidrv funciona bajo la suposición de que cada archivo GPD contiene su propia matriz de dither. También se recomienda que cada dispositivo tenga su propia matriz de dither. La matriz de dither se especifica en una característica personalizada de dither *Feature:.