动态生成的打印机命令

重要

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

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

每次在 Unidrv 微型驱动程序的 GPD 文件中指定打印机命令时,可以使用以下两种方法之一:

  • 将命令字符串放入 GPD 文件中。

    将命令字符串放入 GPD 文件后,Unidrv 会在适当的时候将命令发送到打印后台处理程序。 这些命令字符串可以包含标准变量,Unidrv 会在发送命令前对其进行评估。

  • 提供回调函数。

    如果提供回调函数,Unidrv 会在发送命令时调用该函数,而该函数会负责将命令发送到打印后台处理程序。 这样就可以包含动态生成命令字符串的代码,然后将其发送到打印机。

要在 GPD 文件中放置命令字符串,需要在命令的 *Command 条目中加入 *Cmd 属性。

要提供动态生成命令字符串的代码,必须执行以下操作:

  • 提供一个实现 IPrintOemUni::CommandCallback 方法的呈现插件。

  • 在 GPD 文件的 *Command 条目中包含 *CallbackID 命令属性和 *Params 属性(可选)。

当 Unidrv 准备发出打印机命令时,它会检查微型驱动程序数据库,以确定命令是否已通过 *Cmd 属性或 *CallbackID 属性指定。 在前一种情况下,Unidrv 会将命令字符串发送到打印后台处理程序。 在后一种情况下,Unidrv 会调用 IPrintOemUni::CommandCallback 方法,并将 *CallbackID 和 *Params 值作为输入参数传递。