使用 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 将使用表单到纸盒分配表自动选择支持所选纸张大小的纸盒。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈