Uso de EnumOptions
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.
Un autor de llamada puede usar EnumOptions para recuperar una lista de palabras clave de opciones para las características del controlador soportadas y cualquier característica PPD. Para las funciones PPD, EnumOptions siempre es compatible y devuelve las opciones definidas por PPD.
En el caso de las funciones de controlador, EnumOptions solo es compatible con las funciones soportadas actualmente y que tienen un conjunto fijo de opciones. Por ejemplo: %AddEuro tiene dos opciones: "True" y “False”, y %PageOrder tiene dos opciones “FrontToBack” y “BackToFront”. EnumOptions es compatible con %AddEuro (si el nivel de idioma es 2 o superior), al igual que %PageOrder (si la cola EMF está activada). Pero características como %CustomPageSize, %PSMemory, y otras tienen un número ilimitado de opciones posibles, lo que significa que EnumOptions no es compatible con ellas.
Para las características del controlador que no están soportadas actualmente, o para las características del controlador compatibles que no son enumerables a través de EnumOptions, EnumOptions devuelve E_NOTIMPL.
Además, algunas opciones de un controlador pueden no estar soportadas bajo ciertas condiciones. Por ejemplo, si la cola EMF spooling está desactivada en Windows 2000 y versiones posteriores del sistema operativo, la opción "Booklet" no es compatible con la función %PagePerSheet. Por ejemplo, si la impresora no tiene un rasterizador Type42, la opción "NativeTrueType" no es compatible con %TTDownloadFormat. Estas opciones no soportadas no aparecerán en la lista de palabras clave de salida de EnumOptions.
Pscript maneja las siguientes palabras clave de forma especial:
La palabra clave de función *CustomPageSize se convierte en una opción de la palabra clave de función *PageSize, siendo "CustomPageSize" la palabra clave de opción. Llame a GetOptionAttribute para obtener sus parámetros PPD.
La entrada *ManualFeed True se convierte en una opción de la palabra clave *InputSlot, siendo "ManualFeed" la palabra clave de la opción.
Para la palabra clave de función *InputSlot, Pscript siempre añade una opción generada por el controlador con el nombre de palabra clave de opción "*UseFormTrayTable" como primera opción (el prefijo "*" se usa en el nombre de palabra clave de opción para evitar un posible conflicto de nombres con las opciones definidas en el PPD), a la que siguen las opciones definidas en el PPD. Si se selecciona la opción "*UseFormTrayTable", Pscript usará la tabla de asignación de formulario a bandeja para seleccionar automáticamente la bandeja de papel que admita el tamaño de papel seleccionado.