PPD 功能

重要

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

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

PPD 功能在 PPD 文件中的 OpenUI/*CloseUI 结构关键字对中定义,以及 Pscript 驱动程序以类似方式处理的某些 PPD 关键字中定义。 虽然 EnumFeatures 列出了 *LeadingEdge*UseHWMargins 关键字,但它们不是在 PPD *OpenUI/*CloseUI 结构关键字对中定义的。

GetOptionsSetOptions 方法将忽略这些关键字(如果它们出现在功能列表中)。 PPD 功能/选项关键字区分大小写。

SetOptions 以特殊方式处理某些 PPD 功能:

  • 如果打印机的 PPD 文件包含 *OutputOrder 功能关键字,并且调用 SetOptions 来更改此功能的选项选择,则将更改 %PageOrder 驱动程序功能设置以匹配新的输出顺序。 这样做是为了防止后台处理程序执行不必要的页面顺序模拟。

  • 如果打印机的 PPD 文件包含 *OutputBin 功能关键字,并且调用 SetOptions 来更改此功能的选项选择,并且该更改会导致 %PageOrder 驱动程序功能的当前设置与打印机的页面排序相反,并且 %MetafileSpooling 为“False”,则 %MetafileSpooling 将重置为“True”。

  • 如果启用了后台处理程序 EMF 假脱机,并且 Collate 设置为“True” (可以直接在 DEVMODEW 结构的公共部分中设置,也可以通过在 PPD 的 *Collate 功能关键字) 上调用 SetOptions 来设置,但 Collate 功能当前不可用,并且 %MetafileSpooling 为“False”,则 %MetafileSpooling 将重置为“True”。 这在应用 SetOptions 调用中的所有请求设置时完成。

  • 如果双工设置为单工 (则可以直接在 DEVMODE 结构的公共部分或通过调用 PPD 的双工功能关键字) 上的 SetOptions 来设置,但 %PagePerSheet 设置为“Booklet”,则 %PagePerSheet 将更改为“2”。 这在应用 SetOptions 调用中的所有请求设置时完成。