Características del controlador
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.
Las características del controlador son características no de PPD sintetizadas por el controlador (por ejemplo, la característica %OutputFormat). Para evitar conflictos de nombres con palabras clave de característica PPD, todos los nombres de palabra clave de característica del controlador van precedidos de un carácter "%". Las palabras clave de característica u opción del controlador también distinguen mayúsculas de minúsculas.
Para obtener una lista de todas las palabras clave de característica de controlador que admite el controlador, un complemento puede llamar a EnumFeatures, que devolverá la lista de palabras clave de la característica que contiene las características del controlador y las características de PPD. Después, el complemento puede buscar nombres de palabra clave de característica que comiencen con el prefijo "%" para obtener la lista de características del controlador.
En la tabla siguiente se indican las características de controlador admitidas actualmente. Cada fila de la tabla muestra una palabra clave de característica de controlador, muestra las opciones admitidas, indica si las opciones de la característica se pueden enumerar en una llamada a EnumOptions y proporciona una breve descripción.
Característica del controlador | Opciones admitidas | Opciones de enumeración | Descripción y comentarios |
---|---|---|---|
%AddEuro | "True" "False" |
Sí | Agrega el símbolo de euro a las fuentes del dispositivo. Esta característica solo se admite para impresoras de nivel 2+. En impresoras de nivel 1, SetOptions omite esta característica y GetOptions siempre devuelve "False". |
%CtrlDAfter | "True" "False" |
Sí | Envía Ctrl-D después de cada trabajo. Temporal de la impresora. |
%CtrlDBefore | "True" "False" |
Sí | Envía Ctrl-D antes de cada trabajo. Temporal de la impresora. |
%CustomPageSize | Consulte la Nota 1 siguiente para obtener más información. | No | Especifica los parámetros de tamaño de página personalizados de PostScript. Temporal del documento. |
%GraphicsTrueGray | "True" "False" |
Sí | Convierte gráficos grises en gris PostScript. Temporal de la impresora. |
%JobTimeout | Cadena ANSI terminada en NULL que contiene caracteres de dígito decimal que representa el número entero sin signo de segundos para el tiempo de espera, en el intervalo comprendido entre 0 y 2.147.483.647. Para SetOptions, se permiten caracteres de tabulación o espacio adicionales antes o después de los dígitos decimales, pero no se permite un símbolo de signo. |
No | Especifica el valor de tiempo de espera del trabajo. Temporal de la impresora. |
%MaxFontSizeAsBitmap | Cadena ANSI terminada en NULL que contiene caracteres de dígito decimal que representa el número entero sin signo de píxeles, en el intervalo de 0 a 32 767. Para SetOptions, se permiten caracteres de tabulación o espacio adicionales antes o después de los dígitos decimales, pero no se permite un símbolo de signo. |
No | Especifica el tamaño máximo de fuente que se va a descargar como mapa de bits. Temporal de la impresora. |
%MetafileSpooling | "True" "False" |
Sí | Habilita o deshabilita las características avanzadas de impresión. Temporal del documento. Consulte la Nota 2 siguiente para obtener más información. |
%MinFontSizeAsOutline | Cadena ANSI terminada en NULL que contiene caracteres de dígito decimal que representa el número entero sin signo de píxeles, en el intervalo de 0 a 32 767. Para SetOptions, se permiten caracteres de tabulación o espacio adicionales antes o después de los dígitos decimales, pero no se permite un símbolo de signo. |
No | Especifica el tamaño mínimo de fuente que se va a descargar como esquema. Temporal de la impresora. |
%Mirroring | "True" "False" |
Sí | Refleja la salida revirtiendo las coordenadas horizontales. Temporal del documento. |
%Negative | "True" "False" |
Sí | Genera una salida negativa al revertir los valores de blanco y negro. Esta característica solo se admite para impresoras en negro y blanco. En impresoras a color, SetOptions omite esta característica y GetOptions siempre devuelve "False". Temporal del documento. |
%Orientation | "Portrait", "Landscape", "RotatedLandscape" | Sí | Especifica la orientación de salida. Temporal del documento. |
%OutputFormat | "Speed", "Portability", "EPS", "Archive" | Sí | Especifica el formato de salida de PostScript. Temporal del documento. Consulte la Nota 5 siguiente para obtener más información. |
%OutputProtocol | "ASCII", "BCP", "TBCP", "Binary" | Sí | Especifica el protocolo que usará la impresora para los trabajos de impresión. Se supone que las impresoras PostScript admiten "ASCII" y "Binary", por lo que estas opciones siempre están disponibles. Las opciones "BCP" y "TBCP" solo están disponibles si se admiten. Para determinarlo, compruebe el atributo global "Protocols". Temporal de la impresora. |
%OutputPSLevel | "1", "2", "3" | No | Especifica el nivel de lenguaje PostScript que se va a usar para el trabajo de impresión. La configuración nunca será mayor que el valor especificado en el atributo global "LanguageLevel". Temporal del documento. |
%PageOrder | "FrontToBack" "BackToFront" |
Sí | Especifica el orden de impresión de las páginas. Temporal del documento. Consulte la Nota 3 siguiente para obtener más información. |
%PagePerSheet | "1", "2", "4", "6", "9", "16", "Booklet" |
Sí | Especifica el número de páginas lógicas por hoja física. Esta característica también se conoce como impresión "N-up". Temporal del documento. Consulte la Nota 4 siguiente para obtener más información. |
%PSErrorHandler | "True" "False" |
Sí | Envía el controlador de errores PostScript. Temporal del documento. |
%PSMemory | Cadena ANSI terminada en NULL que contiene caracteres de dígito decimal que representa el número entero sin signo de kilobytes de memoria PostScript, en el intervalo comprendido entre 0 y 2.147.483.647. Para SetOptions, se permiten caracteres de tabulación o espacio adicionales antes o después de los dígitos decimales, pero no se permite un símbolo de signo. |
No | Especifica la cantidad de memoria virtual PostScript disponible. El controlador principal requiere una cierta cantidad de memoria virtual PostScript disponible para su procesamiento. Si %PSMemory se establece por debajo de este mínimo, el valor mínimo se usa como nuevo valor. Actualmente, el valor mínimo es de 172 KB para impresoras de nivel 1 y 249 KB para impresoras de nivel 2+. Temporal de la impresora. |
%TextTrueGray | "True" "False" |
Sí | Convierte texto gris en gris PostScript. Temporal de la impresora. |
%TTDownloadFormat | "Automatic", "Outline", "Bitmap", "NativeTrueType" | Sí | Especifica el formato de descarga de fuentes TrueType. "NativeTrueType" solo se admite cuando el atributo global "TTRasterizer" indica la compatibilidad con "Type42". Temporal del documento. |
%WaitTimeout | Cadena ANSI terminada en NULL que contiene caracteres de dígito decimal que representa el número entero sin signo de segundos para el tiempo de espera, en el intervalo comprendido entre 0 y 2.147.483.647. Para SetOptions, se permiten caracteres de tabulación o espacio adicionales antes o después de los dígitos decimales, pero no se permite un símbolo de signo. |
No | Especifica un valor de tiempo de espera. Temporal de la impresora. |
Notas sobre las palabras clave de características del controlador
La característica del controlador %CustomPageSize tiene cinco valores de opción: x, y, WidthOffset, HeightOffset y FeedDirection. Consulte la sección 5.16 de la especificación de formato de archivo de descripción de impresora PostScript, versión 4.3, para obtener una explicación detallada de estos parámetros.
Una entrada %CustomPageSize contiene la palabra clave %CustomPageSize, junto con valores para las opciones x, y, WidthOffset, HeightOffset y FeedDirection. El primer elemento es la palabra clave %CustomPageSize, seguida de un carácter NULL. Los valores de x, y, WidthOffset y HeightOffset siguen a esta palabra clave y aparecen como subcadenas de dígitos decimales sin signo, cada uno representando el número de puntos PostScript para el valor de opción correspondiente. Cada uno de estos valores numéricos va seguido de uno o varios caracteres de espacio o tabulación. El elemento final de la cadena es el valor de FeedDirection, que finaliza con un carácter NULL. Las opciones de FeedDirection son "LongEdge", "ShortEdge" (correspondientes a las orientaciones 0 y 1) y "LongEdgeFlip", "ShortEdgeFlip" (correspondientes a las orientaciones 2 y 3). Compruebe la palabra clave de característica de PPD *LeadingEdge para obtener instrucciones sobre las fuentes admitidas.
Para GetOptions, el búfer de salida al que apunta pmszFeatureOptionBuf es como se describe en el párrafo anterior. En el ejemplo siguiente, el valor de x es 612, el valor de y es 792, los valores de WidthOffset y HeightOffset son 0 y el valor de FeedDirection es "ShortEdge".
"%CustomPageSize\0612 792 0 0 ShortEdge\0"
Para SetOptions, se permiten caracteres de tabulación o espacio adicionales antes o después de los dígitos decimales, pero no se permite un símbolo de signo. De lo contrario, el búfer de entrada al que apunta pmszFeatureOptionBuf debe construirse como se describió anteriormente.
La característica del controlador %CustomPageSize solo se admite si se cumplen las tres condiciones siguientes:
El archivo PPD contiene la característica *CustomPageSize.
La palabra clave *PPD-Adobe tiene un valor mayor o igual que 4.3, o *UseHWMargin: False se especifica para indicar un dispositivo alimentado por rollos.
La opción seleccionada actualmente de la característica de PPD *PageSize es CustomPageSize.
Esta característica solo se admite cuando está habilitada la cola del administrador de trabajos de impresión EMF.
Cuando se admite, establecer la opción de esta característica en "False" provoca cambios en las siguientes características relacionadas con EMF:
Si %PagePerSheet es "Booklet", se cambia a "1".
Si Collate se establece en "True" (que se puede establecer directamente en la parte pública de la estructura DEVMODEW o llamando a SetOptions en la característica de PPD *Collate), pero la característica Collate no está disponible actualmente, Collate se establecerá en "False".
Si %PageOrder es lo contrario a la configuración actual del orden de salida de la impresora, %PageOrder se invierte al valor de la impresora.
Esta característica solo se admite cuando está habilitada la cola del administrador de trabajos de impresión EMF.
Cuando se admite, establecer esta característica puede hacer que se produzca lo siguiente:
Si el archivo PPD de la impresora incluye la palabra clave de la característica *OutputOrder, su selección de opción se cambia para que coincida con el orden de salida de la nueva configuración de la característica %PageOrder. Esto se hace para evitar que el administrador de trabajos de impresión realice una simulación de orden de página innecesaria.
Si el archivo PPD de la impresora no incluye la característica *OutputOrder y la nueva configuración de la característica del controlador %PageOrder es lo contrario a la configuración actual del orden de salida de la impresora y la característica del controlador %MetafileSpooling es "False", %MetafileSpooling se restablece a "True".
La opción "Booklet" solo se admite cuando la cola EMF del administrador de trabajos de impresión está habilitada y la característica Duplex está disponible.
Cuando se admite la opción "Booklet", establecer la característica del controlador %PagePerSheet en "Booklet" puede provocar los cambios siguientes:
Si la característica del controlador %MetafileSpooling es "False", se restablece a "True".
Si la característica de PPD *Duplex está establecida en None, la característica *Duplex se restablece a la primera opción no Simplex definida en el archivo PPD.
Excepto "EPS" (PostScript encapsulado), los formatos especificados en la característica del controlador %OutputFormat se clasifican según las dos características siguientes:
¿El código PostScript de salida es independiente del orden de la página?
¿El código PostScript de salida contiene comandos de control de dispositivo (que normalmente usan el operador setpagedevice)?
Category Orden de página independiente setpagedevice Archivar Sí No Portabilidad Sí Sí Velocidad No Sí
Cuando se llama a GetOptions en las palabras clave de características del controlador, si no se reconoce una palabra clave de característica solicitada, o si la palabra clave de característica se reconoce pero no se admite en el modo actual temporal de documento o de impresora (consulte Reemplazo de páginas de hojas de propiedades proporcionadas por controladores), la característica simplemente se omitirá y el búfer de salida no contendrá su par de palabras clave de característica u opción.
Por ejemplo, supongamos que se llama al método GetOptions y que el búfer de entrada pmszFeaturesRequested contiene la siguiente cadena (en formato MULTI_SZ):
"Resolution\0%CustomPageSize\0Unknown_Name\0%Orientation\0\0"
Una vez que se devuelve GetOption, el búfer de salida pmszFeatureOptionBuf podría contener esta cadena (también en formato MULTI_SZ):
"Resolution\0300dpi\0%CustomPageSize\0612 792 0 0 ShortEdge\0%Orientation\0RotatedLandscape\0\0"
Observe que la característica Unknown_Name (que no existe) que aparece en la primera cadena no aparece en la segunda cadena, ya que el controlador Pscript no lo reconoció. Las otras características, Resolution, %CustomPageSize y %Orientation, aparecen en la cadena de salida, junto con sus opciones actuales, que son "300dpi", "612 792 0 0 ShortEdge" y "RotatedLandscape", respectivamente. Consulte Características del controlador para obtener una explicación de las opciones %CustomPageSize.
Cuando se llama a SetOptions en las palabras clave de característica del controlador, si no se reconoce una palabra clave de característica solicitada o su palabra clave de opción en el búfer de entrada al que apunta pmszFeatureOptionBuf, o bien la característica se reconoce pero no se admite en el modo actual temporal de documento de impresora (consulte Reemplazo de páginas de hojas de propiedades proporcionadas por controladores), o si tanto la palabra clave de característica como su palabra clave de opción se reconocen, pero la palabra clave de opción no es válida para esa característica (por ejemplo, al intentar establecer %TTDownloadFormat en "NativeTrueType" en una impresora que no admite Type42 TTRasterizer), se omitirá ese par de característica/opción y la opción actual de esa característica seguirá siendo efectiva.
El orden de los pares de palabras clave característica/opción del búfer al que apunta pmszFeatureOptionBuf puede afectar al resultado de la llamada a SetOptions. Por ejemplo, los dos órdenes siguientes tienen resultados diferentes.
pmszFeatureOptionBuf | %PagePerSheet | %MetafileSpooling |
---|---|---|
"%MetafileSpooling\0False\0%PagePerSheet\0Booklet\0\0" | "Booklet" | "True" |
"%PagePerSheet\0Booklet\0%MetafileSpooling\0False\0\0" | "1" | "False" |
Para obtener una explicación de por qué se producen estos resultados, consulte la nota 3 en %MetafileSpooling, arriba.