适用于 Windows Vista 的仅限根级别的新 PPD 属性

重要

新式打印平台是 Windows 与打印机通信的首选方式。 建议使用 Microsoft 的 IPP 收件箱类驱动程序以及打印支持应用 (PSA) 来自定义 Windows 10 和 11 中的打印体验,以便进行打印机设备开发。

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

以下列表描述了从 Windows Vista 开始的新 PPD 属性。 若要保持与 Windows Vista 之前的 Windows 版本的向后兼容性,应使用以下代码将这些属性括起来。

*Ifdef: WINNT_60 ... *Endif: WINNT_60 blocks

MSPrintSchemaKeywordMap

MSPrintSchemaKeywordMap 属性定义从 PPD 功能关键字到公共打印架构功能关键字的映射,或从 PPD 功能的 PPD 选项关键字到打印架构功能的公共打印架构选项关键字的映射。

MSPrintSchemaKeywordMap 有两种可接受的格式:

格式 1

*MSPrintSchemaKeywordMap: PrintSchema_feature_keyword *<PPD_feature_keyword>

格式 2

*MSPrintSchemaKeywordMap: PrintSchema_feature_keyword PrintSchema_option_keyword *<PPD_feature_keyword> <PPD_option_keyword>

两种格式的 PPD 功能关键字前缀(星号 [*])都是必需的。

对于格式 1:

  • PPD 功能关键字必须引用已在以前的 PPD 文件内容中定义的 PPD 功能。

  • 不允许为同一 PPD 功能定义多个 *MSPrintSchemaKeywordMap。 如果找到多个定义,则仅接受第一个定义,其他定义将被忽略。

对于格式 2:

  • PPD 功能的 *MSPrintSchemaKeywordMap 定义(使用格式 1)必须存在,才能显示 PPD 功能选项的任何 *MSPrintSchemaKeywordMap 定义。

  • 在 PPD 选项的 *MSPrintSchemaKeywordMap 定义中,PPD 功能关键字到打印架构功能关键字的映射必须与 PPD 功能的上一个 *MSPrintSchemaKeywordMap 定义(使用格式 1)中定义的内容相同。

  • PPD 选项关键字必须引用已在以前的 PPD 文件内容中定义的 PPD 功能选项。

  • 不允许为同一 PPD 功能定义多个 *MSPrintSchemaKeywordMap。 如果找到多个定义,则仅接受第一个定义,其他定义将被忽略。

如果 *MSPrintSchemaKeywordMap 条目违反上述任何格式规则,则该条目将被忽略,你将收到包含详细信息的 ppdchecker 警告。

*MSPrintSchemaKeywordMap 不支持与以下标准 PPD 功能一起使用:

*Collate *Duplex *InputSlot *OutputBin *PageSize *Resolution *MediaType 也请务必知道,如果将功能映射到已在 PPD 文件中使用的打印架构关键字,相应的 PrintCapabilities 文档可能会多次列出该功能。 多次出现可能会造成混淆,因此不应将功能映射到 PPD 文件中使用的打印架构关键字。

PPD 分析程序会自动为 InputBin 功能生成 FORMSOURCE 选项,并将其映射到打印架构中的 AutoSelect 关键字。 如果 PPD 文件包含一个 InputBin 选项,该选项使用 MSPrintSchemaKeywordMap 属性将选项映射到打印架构关键字,则打印架构中的功能将在设备命名空间中包含 FORMSOURCE 选项。 AutoSelect 将显示在 PrintCapabilities 文档中,并引用在 PPD 文件的 MSPrintSchemaKeywordMap 属性中指定的选项。

以下代码示例显示了部分 PPD 文件中的 MSPrintSchemaKeywordMap 属性的示例。

*OpenUI *IHVStapling:PickOne
*DefaultIHVStapling:Disabled
*IHVStapling Enabled:"..."
*IHVStapling Disabled:"..."
*CloseUI: *IHVStapling

*MSPrintSchemaKeywordMap: Staple*IHVStapling
*MSPrintSchemaKeywordMap: StapleOn*IHVStaplingEnabled
*MSPrintSchemaKeywordMap: StapleOff*IHVStaplingDisabled

MSPrintSchemaPrivateNamespaceURI

MsPrintSchemaPrivateNamespaceURI 属性定义核心驱动程序应用于在 PrintTicket 或 PrintCapabilities 中公开专用 PPD 功能或选项的专用命名空间 URI。 此 URI 将应用于任何没有显式映射(通过使用 *MSPrintSchemaKeywordMap 定义)到公共打印架构的功能或选项。

MSPrintSchemaPrivateNamespaceURI 使用以下格式。

*MSPPrintSchemaPrivateNamespaceURI: "<URI>"

<URI> 表示 PPD QuotedValue。 根据 PPD 规范的定义,QuotedValue 允许文本 ASCII 子字符串和十六进制子字符串。

单个打印机型号的 PPD 文件(或多个文件)应只有 *MSPrintSchemaPrivateNamespaceURI 的一个定义。 如果找到多个定义,则仅接受第一个定义,其他定义将被忽略。

以下代码示例显示了部分 PPD 文件中的 MsPrintSchemaPrivateNamespaceURI 属性的示例。

*MSPrivateNamespaceURI:  "https://www.ihv.com/schema/2004"

MSIsXPSDriver

MSIsXPSDriver 属性使用以下格式。

*MSIsXPSDriver:  True | False

可以将 Windows Vista PScript5 驱动程序配置模块 (Ps5ui.dll) 用于 Microsoft Win32 GDI 驱动程序和新 XPSDrv 驱动程序。 若要将 PScript5 驱动程序配置模块用于 XPSDrv 驱动程序,XPSDrv 驱动程序的 PPD 数据文件必须指定 MSIsXPSDriver,并将其值设置为 True。

以下代码示例显示了部分 PPD 文件中此属性的示例:

*MSIsXPSDriver: True

若要对 Win32 GDI 驱动程序使用 PScript5 驱动程序配置模块,无需指定此 PPD 属性。

MSPrintProcDuplexOptions

MSPrintProcDuplexOptions 属性使用以下格式。

*MSPrintProcDuplexOptions:  "int"

此属性可以具有以下值之一:

1:在反向双工模式下反转页面

2:如果可能,禁止生成额外的空白页

3:以上两者

0:以上都不是

以下代码示例显示了部分 PPD 文件中 MSPrintProcDuplexOptions 属性的示例。

*MSPrintProcDuplexOptions:  "2" 

此属性控制打印处理器中的各种双工选项。

如果 MSPrintProcDuplexOptions 为 1,则它控制打印处理器是否应在反向双工模式下反转页面。

假设必须打印 n-up = 1 的四页文档,并且想要使用反向打印和双面打印。 由于需要反向打印,因此需要在打印第一页之前打印最后一页。 由于需要双面打印,因此需要在一张纸上打印两页。 打印处理器可以按以下两种格式之一播放页面(其中每对数字表示将在单张纸的两面打印的两页):

  • 格式 1:(4,3),(2,1)

  • 格式 2:(3,4),(1,2)

在 Windows Vista 之前,打印处理器将以格式 2 [(3,4),(1,2)] 打印页面。 但在 Windows Vista 及更高版本中,默认格式为格式 1 [(4,3),(2,1)]。 发生此更改是因为许多打印机的格式 2 输出不正确;也就是说,打印的页面没有按正确的顺序排列。

如果打印机在格式 1 下工作正常,则不需要为 Windows Vista 及更高版本更改任何内容。 但是,如果打印机在格式 1 下工作不正常,并且你想恢复到格式 2,请为 MSPrintProcDuplexOptions 属性添加值 1。

*MSPrintProcDuplexOptions: "1"

对于 Windows Vista 之前的 PScript 驱动程序,如果你有 Windows Vista 之前版本的打印处理器,则格式 2 是默认格式,并且你无法更改其行为;否则,如果你有 Windows Vista 打印处理器,则格式 1 是默认格式,并且你无法更改其行为。

适用于 Windows Vista PScript 驱动程序。 如果你有 Windows Vista 之前的打印处理器,则格式 2 是默认格式,并且 PPD 属性将被忽略;否则,如果你有 Windows Vista 打印处理器,则格式 1 是默认格式,但你可以使用 MSPrintProcDuplexOptions 属性更改格式。

如果 MSPrintProcDuplexOptions 为 2,则打印处理器将在某些双面打印方案中抑制空白页的生成。

例如,如果作业是单页作业,并且双面打印已打开(假设 n-up = 1),则只需要打印纸张的一面。 目前,打印机将打印一面,然后在反面生成空白页。 (由于打印作业是在双面 = 打开的情况下启动的,因此打印机在弹出纸张之前需要两页。如果第二页没有打印,一些打印机会一直等待。)当前解决方案的缺点是:

  • 生成的页面会导致会计软件中的页面计数和打印机中的页面计数器的页计数不准确。

  • 当页面从打印机中取出一半时(在某些 Hewlett-Packard DeskJet 风格的打印机中),用户可能会尝试将其拉出,而打印机则试图将其拉回。 这种情况可能会导致硬件问题。

可以通过在 PPD 文件中指定 *MSPrintProcDuplexOptions: "2" 来避免上述问题。

请注意,即使设置了此属性,也仅在以下有限情况下执行空白页优化:

  1. 对于反向打印,只有当整个作业可以放在纸张的单面上时,才会执行空白页优化(例如,n-up=1 的单页作业或 n-up=4 的四页作业)。 如果作业需要多张纸,则不会执行优化(因为打印机页面将以不准确的顺序打印)。 例如,对于三页作业,页面可以按 3,2,1,<空白>的顺序打印,而不是 4,3,2,<空白>。

  2. 如果打印处理器必须模拟副本,则不执行空白页优化。 如果所需的副本数量超过打印处理器可以制作的副本数量,则打印处理器会模拟副本。

    以下情况是发生模拟并生成空白页(如果需要)的示例:

    • 无法复印的打印机需要两份复印件

    以下情况是不发生模拟的示例,你可以抑制额外的页面生成:

    • 无法复印的打印机的单份复印作业
    • 一台可以打印多份的打印机的五份复印作业

对于 Windows Vista 之前的 PScript 驱动程序,如果你有 Windows Vista 之前版本的打印处理器,打印机将在必要时打印额外的空白页,并且你无法更改行为;否则,如果你有 Windows Vista 打印处理器,打印机将在必要时打印额外的空白页,并且你无法更改此行为。

适用于 Windows Vista PScript 驱动程序。 如果你有 Windows Vista 之前的打印处理器,打印机将在必要时打印额外的空白页,并且 PPD 属性将被忽略;否则,如果你有 Windows Vista 打印处理器,并且存在适当的 PPD 属性和适当的条件(即前面描述的防止空白页打印的条件),打印机将不会打印空白页。

MSBidiQueryFile

MSBiDiQueryFile 属性使用以下格式。

*MSBidiQueryFile: "filename"

使用 MSBiDiQueryFile 指定包含打印机驱动程序的自动配置 BidiQuery 和 BidiResponse 数据的 GPD 或 GDL 文件名。 GPD 或 GDL 文件名不应指定任何路径。

以下代码示例显示了部分 PPD 文件中 MSBiDiQueryFile 的示例:

*MSBidiQueryFile: "ACnfgPS.GDL"

MSXPSMaxCopies

MSXPSMaxCopies 属性使用以下格式。

*MSXPSMaxCopies: "int"

使用 MSXPSMaxCopies 指定 XPSDrv 打印机驱动程序可以支持的最大份数。

以下代码示例显示了部分 PPD 文件中 MSXPSMaxCopies 的示例。

*MSXPSMaxCopies: "99"