命令执行顺序
重要
建议使用 Microsoft 的 IPP 收件箱类驱动程序,以及 Print Support Apps (PSA) ,在 Windows 10 和 11 中自定义打印体验,以便进行打印机设备开发。
有关详细信息,请参阅 打印支持应用设计指南。
打印机命令必须按有意义的顺序发送到打印机硬件。 对于 GPD 语言中定义的大多数命令名称,Unidrv 知道何时将命令的转义序列发送到打印机。 有两种例外情况:
对于这两种命令类型,必须指定命令的执行顺序。
命令执行顺序由两个组件组成 -- 一个作业节名称和一个序列顺序号。 Unidrv 驱动程序将每个打印作业划分为六个部分。 对于每个节,Unidrv 按指定的顺序向打印机发送分配给节的命令。 定义了以下部分:
JOB_SETUP
为每个作业发送一次分配给 JOB_SETUP 节的命令。 它们是新作业开始时发送的第一个命令。 这些命令是从 Unidrv 的 DrvStartDoc 函数实现中发送的。
DOC_SETUP
分配给DOC_SETUP节的命令在发送文档的第一页之前发送。 命令从 Unidrv 的 DrvStartDoc 函数实现中发送。 (应用程序调用 Win32 ResetDC 函数后也会发送这些命令。本部分中的命令不得删除下载的信息,例如软字体和 patterns.)
PAGE_SETUP
分配给 PAGE_SETUP 节的命令在每个新页面的开头发送,然后开始绘制。 这些命令是从 Unidrv 的 DrvStartPage 函数实现中发送的。
PAGE_FINISH
绘制完成后,将在每个页面末尾发送分配给 PAGE_FINISH 节的命令。 这些命令是从 Unidrv 的 DrvSendPage 函数实现中发送的。
DOC_FINISH
分配给DOC_FINISH节的命令在发送文档的最后一页后发送。 命令是从 Unidrv 的 DrvEndDoc 函数实现中发送的。 本部分中的 (命令不得删除下载的信息,例如软字体和 patterns。)
JOB_FINISH
为每个作业发送一次分配给 JOB_FINISH 节的命令。 它们是作业结束时发送的最后一个命令。 这些命令是从 Unidrv 的 DrvEndDoc 函数实现中发送的。
在每个节中,命令按其序列号指示的顺序执行。
若要指定命令的节和序列号,请使用命令属性中所述的 *Order属性。 格式为:
*Order: SectionName.SequenceNumber
其中 SectionName 是JOB_SETUP、DOC_SETUP、PAGE_SETUP、PAGE_FINISH、DOC_FINISH或JOB_FINISH之一, SequenceNumber 是数值。
序列号不必是连续的,但节中指定的每个数字必须是唯一的。 节中的命令从序列号最低的节执行到序列号最高的节。 例如,以下条目指示 InputBin、 PaperSize 和 Resolution 功能的选项分配给 DOC_SETUP 节,并按指定顺序发送:
*Feature: InputBin
{
*Option: Auto
{
*Name: "Auto Tray"
*Command: CmdSelect
{
*Order: DOC_SETUP.50
*Cmd: "<1B>(1<010014>"
}
}
...
}
*Feature: PaperSize
{
*DefaultOption: Letter
*Option: Letter
{
*Name: "Letter size"
*Command: CmdSelect
{
*Order: DOC_SETUP.60
*Cmd: "<1B>(g<0300>n<01>r"
}
}
...
}
*Feature: Resolution
{
*DefaultOption: 360dpi
*Option: 360dpi
{
*Name: "360 dpi x 360dpi"
*Command: CmdSelect
{
*Order: DOC_SETUP.70
*Cmd: "<1B>(d<020001>"
}
}
...
}
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈