使用 EnumOptions

重要

建议使用 Microsoft 的 IPP 收件箱类驱动程序以及打印支持应用 (PSA) ,自定义 Windows 10 和 11 中的打印体验,以便进行打印机设备开发。

有关详细信息,请参阅 打印支持应用设计指南

调用方可以使用 EnumOptions 检索支持的驱动程序功能和任何 PPD 功能的选项的关键字列表。 对于 PPD 功能, 始终支持 EnumOptions ,并返回 PPD 定义的选项。

对于驱动程序功能, EnumOptions 仅支持当前支持且具有一组固定选项的功能。 例如:%AddEuro 有两个选项:“True”和“False”,%PageOrder 有两个选项“FrontToBack”和“BackToFront”。 %AddEuro (如果语言级别为 2 和更高) ,则 %AddEuro 支持 EnumOptions,因为 %PageOrder (如果) 启用了后台处理程序 EMF 后台处理程序。 但 %CustomPageSize、%PSMemory 等功能具有无限数量的可能选项,这意味着 EnumOptions 不受支持。

对于当前不支持的驱动程序功能,或者对于无法通过 EnumOptions 枚举的受支持驱动程序功能, EnumOptions 返回E_NOTIMPL。

此外,在某些情况下可能不支持驱动程序功能的某些选项。 例如,如果在 Windows 2000 及更高版本的操作系统版本上禁用后台处理程序 EMF 后台处理程序,则 %PagePerSheet 功能不支持“Booklet”选项。 例如,如果打印机没有 Type42 光栅器,则 %TTDownloadFormat 不支持“NativeTrueType”选项。 这些不支持的选项不会显示在 EnumOptions 的输出关键字列表中。

Pscript 以特殊方式处理以下功能关键字:

  • *CustomPageSize 功能关键字将转换为 *PageSize 功能关键字的选项,而“CustomPageSize”是选项关键字。 调用 GetOptionAttribute 以获取其 PPD 参数。

  • *ManualFeed True 条目将转换为 *InputSlot 功能关键字的选项,其中“ManualFeed”是选项关键字名称。

  • 对于 *InputSlot 功能关键字,Pscript 始终添加一个驱动程序生成的选项,选项关键字名称为“*UseFormTrayTable”作为第一个选项, (选项关键字名称中使用“*”前缀,以避免可能的名称与 PPD 定义的选项) 冲突,后者后跟 PPD 中定义的选项。 如果选择“*UseFormTrayTable”选项,Pscript 将使用表单到纸盒分配表自动选择支持所选纸张大小的纸盒。