Nuevos atributos GPD de solo nivel raíz para Windows Vista
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 la lista siguiente se describen los atributos de GPD que son nuevos a partir de Windows Vista. Para mantener la compatibilidad con versiones anteriores de Windows Vista, debe rodear estos atributos con el código siguiente.
*Ifdef: WINNT_60 ... *Endif: WINNT_60 blocks
PrintProcDuplexOptions
El atributo PrintProcDuplexOptions controla varias opciones de dúplex en un procesador de impresión. Este atributo puede tener uno de los siguientes valores:
1: Invertir las páginas para dúplex inverso
2: Suprimir la generación de páginas en blanco adicionales si es posible
3: Las dos opciones anteriores
0: Ninguna de las anteriores
Si PrintProcDuplexOptions es 1, controla si el procesador de impresión debe invertir páginas en dúplex inverso.
Supongamos que tiene que imprimir un documento de cuatro páginas con n-up = 1 y desea usar la impresión inversa y la impresión dúplex. Dado que desea imprimir de forma inversa, desea imprimir la última página antes de la primera página. Dado que desea imprimir en dúplex, desea imprimir dos páginas en una sola hoja de papel. El procesador de impresión puede reproducir las páginas en uno de los dos formatos siguientes (donde cada par de números indica las dos páginas que se imprimirían en las dos caras de una sola hoja de papel):
Formato 1: (4,3),(2,1)
Formato 2: (3,4),(1,2)
Antes de Windows Vista, un procesador de impresión imprimiría la orden en formato 2 [(3,4),(1,2)]. Pero en Windows Vista y versiones posteriores, el formato predeterminado es el formato 1 [(4,3),(2,1)]. Este cambio se produjo porque muchas impresoras tienen una salida incorrecta con el formato 2; es decir, las páginas que se imprimen no se ordenan en el orden adecuado.
Pero si la impresora funciona correctamente con el formato 1, no tendrá que cambiar nada para Windows Vista y versiones posteriores. Sin embargo, si la impresora funciona incorrectamente con el formato 1 y desea revertir al formato 2, agregue el siguiente ejemplo de código al archivo GPD.
*Ifdef: WINNT_60
*PrintProcDuplexOptions: 1
*Endif: WINNT_60
El formato 1 podría funcionar mejor en algunas orientaciones o en alguna combinación de bandejas de entrada y salida, y el formato 2 podría funcionar mejor en otras combinaciones. Como resultado, puede colocar el atributo PrintProcDuplexOptions en una construcción switch/case.
Para un controlador Unidrv de Windows Vista anterior, si tiene un procesador de impresión anterior a Windows Vista, el formato 2 es el predeterminado y no puede cambiar el formato; de lo contrario, si tiene un procesador de impresión de Windows Vista, el formato 1 es el predeterminado y no puede cambiar el formato.
Para el controlador Unidrv de Windows Vista, si tiene un procesador de impresión anterior a Windows Vista, el formato 2 es el valor predeterminado y se omitirá el atributo GPD; de lo contrario, si tiene un procesador de impresión de Windows Vista, el formato 1 es el predeterminado, pero puede cambiar el formato mediante el atributo PrintProcDuplexOptions.
Si PrintProcDuplexOptions es 2, evita la generación de páginas en blanco en determinados escenarios dúplex.
Este atributo controla si debe enviar páginas en blanco adicionales a la impresora al realizar la impresión dúplex. Por ejemplo, si el trabajo es un trabajo de una página y dúplex está activado (supongamos que n-up = 1), solo es necesario imprimir una cara de la hoja. Actualmente, las impresoras imprimirán una cara y, a continuación, generarán una página vacía en blanco en la cara inversa. (Dado que el trabajo de impresión se inició con duplex=on, la impresora espera dos páginas antes de expulsar la hoja. Si la segunda página no se imprime, algunas impresoras siguen esperando). Los inconvenientes de la solución actual son los siguientes:
La página generada provoca un recuento de páginas inexacto en el software de contabilidad y el contador de páginas dentro de impresoras.
Cuando la página sale de la impresora (en algunas impresoras de estilo Hewlett Packard DeskJet), es posible que el usuario intente extraerla mientras la impresora intenta recuperarla. Esta situación puede provocar problemas de hardware.
Puede evitar los problemas anteriores especificando *PrintProcDuplexOptions: 2 en el archivo GPD.
Tenga en cuenta que, incluso si se establece este atributo, la optimización de página en blanco solo se realiza en los siguientes casos limitados:
Para la impresión inversa, la optimización de páginas en blanco solo se realiza cuando todo el trabajo puede caber en una sola cara del papel (por ejemplo, un trabajo de una página con n-up=1 o un trabajo de cuatro páginas con n-up =4). Si el trabajo necesita más de una hoja, la optimización no se realiza (porque las páginas de impresora se imprimirán en un orden inexacto). Por ejemplo, para un trabajo de tres páginas, las páginas se pueden imprimir en el orden 3,2,1,<en blanco> en lugar de 4,3,2,<en blanco>.
La optimización de páginas en blanco no se realiza si el procesador de impresión tiene que simular copias. El procesador de impresión simula copias si el número de copias necesarias es mayor que el número de copias que puede realizar el procesador de impresión.
La siguiente situación es un ejemplo de cuándo se producen simulaciones y se generan páginas en blanco (si es necesario):
- Dos copias de una impresora que no pueden realizar copias
Las situaciones siguientes son ejemplos de cuándo no se produce la simulación y puede suprimir la generación de páginas adicionales:
- Trabajo de una sola copia para una impresora que no puede realizar copias
- Trabajo de cinco copias para una impresora que puede hacer más de una copia
Uso de PrintProcDuplexOptions
*Ifdef: WINNT_60
*PrintProcDuplexOptions: 2
*Endif: WINNT_60
En algunos casos, es posible que no le importe la impresión de páginas adicionales, mientras que en otros sí. Por lo tanto, puede colocar el atributo PrintProcDuplexOptions en una construcción switch/case.
Para un controlador Unidrv anterior a Windows Vista, si tiene un procesador de impresión anterior a Windows Vista, una impresora imprimirá una página en blanco adicional, si se considera necesario, y no puede cambiar este comportamiento; de lo contrario, si tiene un procesador de impresión de Windows Vista, una impresora imprimirá una página en blanco adicional, si se considera necesario, y no puede cambiar este comportamiento.
Para el controlador Unidrv de Windows Vista, si tiene un procesador de impresión anterior a Windows Vista, una impresora imprimirá una página en blanco adicional, si se considera necesario, y se omitirá el atributo GPD; de lo contrario, si tiene un procesador de impresión de Windows Vista y si el atributo GPD adecuado y las condiciones adecuadas están presentes (es decir, las condiciones descritas anteriormente sobre la prevención de la impresión de páginas en blanco), una impresora no imprimirá páginas en blanco.
PreAnalysisOptions
El atributo PreAnalysisOptions puede tener uno de los siguientes valores:
0: Deshabilitar todos los modos de análisis previo.
1: Modo predeterminado. Activar el análisis de texto monocromo de orden z y la optimización de la banda en blanco. Este modo está habilitado para dispositivos con una fuente descargable o compatibilidad con fuentes de dispositivo y alta resolución (600 ppp o superior), modos de representación de 24 bpp.
2: Habilitar la optimización de 1 bpp para funciones de devolución de llamada ImageProcessing de 24 bpp.
4: Habilitar la compatibilidad con StretchBlt del dispositivo.
8: Habilitar el modo de análisis previo del proveedor.
16: Habilitar el modo de depuración para 1 bpp donde la banda se convierte a 24 bpp antes de llamar a la función de devolución de llamada ImageProcessing.
UseBMPFontCompression?
El atributo UseBMPFontCompression? controla si Unidrv debe comprimir los datos cuando las fuentes se descargan como un mapa de bits. El valor predeterminado de UseBMPFontCompression? es FALSE, lo que significa que Unidrv no realizará compresión si este atributo no está presente en el archivo GPD. Este valor predeterminado mantiene la compatibilidad con versiones anteriores de Unidrv que no tenían la característica de compresión de fuentes de mapa de bits. Debe establecer este atributo en TRUE solo si la impresora admite compresión de fuente de mapa de bits. Los datos de caracteres de mapa de bits comprimidos está en formato comprimido run-length-with-line-repetition.
UseMode5Compression?
El atributo UseMode5Compression? controla si UniDrv debe usar la compresión de Modo 5. La compresión del modo 5 (o método 5) es la compresión adaptable que permite el uso combinado de varios otros métodos de compresión (como Sin codificar, TIFF o Delta-Row). El valor predeterminado de UseMode5Compression? es FALSE, lo que significa que Unidrv no realizará compresión adaptable si este atributo no está presente en el archivo GPD. Este valor predeterminado mantiene la compatibilidad con versiones anteriores de Unidrv que no tenían la característica de compresión adaptable. Debe establecer este atributo en TRUE solo si la impresora admite la compresión adaptable.
UseHPGLPolylineEncoding?
El atributo UseHPGLPolylineEncoding? controla si Unidrv debe usar la codificación polilínea. HP-GL/2 admite los comandos Pen Up/Pen Down/Draw Absolute/Draw Relative para vectores de dibujo. El comando codificado de polilínea (PE) es una manera más eficaz de representar vectores.
El valor predeterminado de UseHPGLPolylineEncoding? es FALSE, lo que significa que Unidrv no usará el comando PE si este atributo no está presente en GPD. Este valor predeterminado mantiene la compatibilidad con versiones anteriores de Unidrv que no tenían compatibilidad con el comando PE. Debe establecer este valor en TRUE solo si la impresora admite polilínea codificada.
PrintSchemaPrivateNamespaceURI
El atributo PrintSchemaPrivateNamespaceURI define el URI de espacio de nombres privado que el controlador principal debe usar para exponer las características u opciones privadas de PPD en PrintTicket o PrintCapabilities. El atributo debe aparecer en la raíz del documento GPD y contiene una representación ASCII de un URI que se usará para definir un espacio de nombres en los documentos PrintTickets y PrintCapabilities. Ese URI, a su vez, se asociará a todas las características y opciones que no tienen una asignación explícita en el esquema público o que el controlador principal no reconoce.
PrintSchemaKeywordMap
El atributo PrintSchemaKeywordMap aparece en construcciones de características y opciones en el archivo GPD. Este atributo indica el nombre del esquema de impresión público que debe usar con las características definidas por la impresora. Puede cambiar el nombre de cualquier opción especificada en un archivo GPD, excepto Dúplex e Intercalar, en printTicket mediante el atributo PrintSchemaKeywordMap.
El analizador GPD omite este atributo para las características que se reconocen explícitamente, incluido el tamaño y el color de página.
Todos los valores tienen que ir entre comillas. Se convertirán a Unicode mediante la página de códigos especificada en GPD, si existe. Las definiciones duplicadas de cualquier atributo se resuelven de la misma manera que otros atributos GPD: la última definición que se lee tiene prioridad.
Si asigna una característica a una palabra clave de esquema de impresión que ya se está usando en el archivo GPD, el documento PrintCapabilities correspondiente podría enumerar esa característica más de una vez. Es posible que varias apariciones sean confusas, por lo que no debe asignar características a palabras clave de esquema de impresión que se usan en el archivo GPD.
El analizador GPD genera automáticamente la opción FORMSOURCE para la característica InputBin y la asigna a la palabra clave AutoSelect en el esquema de impresión. Si el archivo GPD contiene una opción InputBin que usa el atributo PrintSchemaKeywordMap para asignar la opción a una palabra clave del esquema de impresión, la característica del esquema de impresión contendrá una opción FORMSOURCE en el espacio de nombres del dispositivo. La selección automática aparecerá en el documento PrintCapabilities y hará referencia a la opción especificada en el atributo PrintSchemaKeywordMap del archivo GPD.
En el ejemplo de código siguiente se muestra un archivo GPD parcial para mostrar el diseño.
*Feature: HPSTAPLER
{
*Name: "Staple"
*DefaultOption: Off
* PrintSchemaKeywordMap: "Staple"
*Option: Off
{
*Name: "Off"
* PrintSchemaKeywordMap: "Off"
}
*Option: On
{
*Name: "On"
* PrintSchemaKeywordMap: "On"
}
}
IsXPSDriver
El atributo IsXPSDriver usa la siguiente sintaxis GPD.
*IsXPSDriver?: TRUE | FALSE
Puede usar el módulo de configuración Unidrv de Windows Vista (Unidrvui.dll) para los controladores GDI de Microsoft Win32 y los nuevos controladores XPSDrv. Para usar el módulo de configuración Unidrv para controladores XPSDrv, el archivo de datos GPD del controlador XPSDrv debe especificar el atributo IsXPSDriver y establecer su valor en TRUE.
Por ejemplo, si tiene un controlador XPS, use el código siguiente.
*IsXPSDriver?: TRUE
Para usar el módulo de configuración Unidrv para controladores GDI win32, no es necesario especificar este atributo.
UseImageForHatchBrush?
El atributo UseImageForHatchBrush? usa la siguiente sintaxis GPD.
*Ifdef: WINNT_60
*UseImageForHatchBrush?: TRUE
*Endif: WINNT_60
En Microsoft Windows Server 2003 o Windows XP, cuando Unidrv imprime en modo HP-GL/2, si se recibe un pincel de sombreado en la función DrvRealizeBrush, Unidrv envía un comando para que la impresora seleccione el pincel de sombreado adecuado. Unidrv no controla cómo se representa el pincel de sombreado. Por ejemplo, el espaciado entre las líneas normalmente se controla mediante la resolución. En una resolución superior, el espaciado se reduce, mientras que en una resolución inferior, el espaciado sería mayor. Por lo tanto, un documento puede imprimir de forma diferente si se usa una resolución diferente.
En Windows Vista, si el GPD especifica el atributo UseImageForHatchBrush?, Unidrv representa el pincel de sombreado en una superficie de mapa de bits y, a continuación, envía ese mapa de bits al dispositivo. Por lo tanto, Unidrv tiene algo de control sobre cómo se representa el pincel de sombreado.
ReverseBandOrder?
El atributo ReverseBandOrder? usa la siguiente sintaxis GPD.
*Ifdef: WINNT_60
*ReverseBandOrder?: TRUE
*Endif: WINNT_60
El valor de ReverseBandOrder? es TRUE o FALSE para indicar si la banda inversa está habilitada. Este atributo hace que las bandas se realicen en orden inverso. Por ejemplo, para una página vertical, las bandas se producen de abajo arriba en lugar de arriba abajo.
Este atributo es esencialmente el mismo que ReverseBandOrderForEvenPages?, excepto que ReverseBandOrder? se considera incluso si el dúplex no está activo (ReverseBandOrderForEvenPages? funciona solo si dúplex es ON) y funciona para todas las páginas (ReverseBandOrderForEvenPages? solo funciona en páginas pares). Para obtener más información sobre cómo usar ReverseBandOrder? y otra información relacionada, consulte *ReverseBandOrderForEvenPages?. Tenga en cuenta especialmente que los complementos deben invertir las líneas de escáner y los bits de la línea de escáner.
¿Puede usar una combinación de *ReverseBandOrderForEvenPages? y *ReverseBandOrder?.
Cuando solo ReverseBandOrder? está establecido en TRUE, se invertirán las bandas para todas las páginas.
Cuando solo ReverseBandOrderForEvenPages? está establecido en TRUE, las bandas se invertirán para páginas pares si la impresora está imprimiendo en dúplex. Si no se establece dúplex, se omite el valor de ReverseBandOrderForEvenPages?.
Cuándo se establecen ReverseBandOrder? y ReverseBandOrderForEvenPage?, se produce lo siguiente:
Si dúplex es ON, las bandas inversas se realizan para páginas impares (es decir, 1, 3, 5, 7, etc.).
Si dúplex es OFF, las bandas inversas se realizan para todas las páginas.
BidiQueryFile
El atributo BidiQueryFile usa la siguiente sintaxis GPD.
*BidiQueryFile: <GPD or GDL file name>
Use BidiQueryFile para especificar el nombre de archivo GPD o GDL que contiene los datos de configuración automática BidiQuery o BidiResponse del controlador de impresora. El nombre de archivo GPD o GDL no debe especificar ninguna ruta de acceso. Si los datos de configuración automática están incluidos en el archivo GPD de DataFile del controlador, también puede especificar ese archivo GPD como el valor del atributo BidiQueryFile.
En el ejemplo de código siguiente se muestra un ejemplo de este atributo en un archivo GPD parcial.
*Ifdef: WINNT_60
*BidiQueryFile: "ACnfgUni.GDL"
*Endif: WINNT_60