标准变量

重要

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

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

GPD 语言使用命令字符串格式定义一组可在命令字符串中引用的标准变量。 Unidrv 驱动程序将值分配给这些变量。 从 GPD 文件的角度来看,变量是只读的。

所有标准变量都存储为 DWORD 整数。

以下打印机命令条目指定了当光栅数据块准备就绪时发送到 HP LaserJet 4P 的命令字符串:

*Command: CmdSendBlockData: "<1B>*b" %d{NumOfDataBytes} "W"

下表按字母顺序包含所有标准变量。

标准变量名称 注释
BlueValue 当前颜色的蓝色分量。 适用于 CmdDefinePaletteEntry 命令字符串(请参阅 GreenValueRedValue)。
CurrentFontID 当前下载的软字体的标识号。 如果当前打印作业包含下载的软字体,则有效。
CurrentPaletteIndex 调色板中的当前索引。 适用于 CmdSelectPaletteEntry 命令字符串(请参阅 GreenValueRedValue)。
CursorOriginX 光标原点的 X 坐标,以主单位为单位。 打印作业正在进行时有效。
CursorOriginY 光标原点的 Y 坐标,以主单位为单位。 打印作业正在进行时有效。
DestX 光标目标相对于光标原点的 X 坐标,以主单位为单位。 适用于 CmdXMoveAbsolute 命令字符串。
DestXRel 光标目标相对于当前光标位置的 X 坐标,以主单位为单位。 适用于 CmdXMoveRelLeft 和 CmdXMoveRelRight 命令字符串。
DestY 光标目标相对于光标原点的 Y 坐标,以主单位为单位。 适用于 CmdYMoveAbsolute 命令字符串。
DestYRel 光标目标相对于当前光标位置的 Y 坐标,以主单位为单位。 适用于 CmdYMoveRelUp 和 CmdYMoveRelDown 命令字符串。
FontBold 如果当前字体为粗体,则设置为 1;否则设置为 0。 指定字体后有效。
FontHeight 当前字体的高度(以主单位表示)。 指定字体后有效。
FontItalic 如果当前字体为斜体,则设置为 1;否则设置为 0。 指定字体后有效。
FontMaxWidth 设置为字体中所有字形的最大字符增量。 指定字体后有效。
FontStrikeThru 如果当前字体启用了删除线,则设置为 1;否则设置为 0。 指定字体后有效。
FontUnderLine 如果当前字体为带下划线,则设置为 1;否则设置为 0。 指定字体后有效。
FontWidth 当前字体的宽度(以主单位表示)。 指定字体后有效。
GraphicsXRes 图形的当前水平分辨率(以 DPI 为单位)。 打印作业正在进行时有效。
GraphicsYRes 图形的当前垂直分辨率(以 DPI 为单位)。 打印作业正在进行时有效。
GrayPercentage 用于灰色填充的灰色级别(百分比)。 适用于 CmdRectGrayFill 命令字符串。
GreenValue 当前颜色的绿色分量。 适用于 CmdDefinePaletteEntry 命令字符串(请参阅 BlueValueRedValue)。
LinefeedSpacing 表示换行符的垂直空间量(以主单位表示)。 适用于 CmdSetLineSpacing 命令字符串。
NextFontID 下一个要下载的软字体的标识号。 适用于 CmdSetFontID 命令字符串。
NextGlyph 下一个要下载的字形的双字节代码。 适用于 CmdSetCharCode 命令字符串。
NumOfCopies 用户请求的份数数。 打印作业正在进行时有效。
NumOfDataBytes 已准备好传输的光栅数据的字节数。 适用于任何 CmdSendXXXData 命令字符串。 如果数据被压缩,则该值是压缩后的字节数。
PageNumber 当前正在打印的页码。 请注意,这不一定对应于应用程序的页码,而是 DrvSendPage 被调用的次数。 此值由 DrvStartDoc 初始化,并按 DrvSendPage 递增。 例如,如果选择了 N-up = 4,则只有在打印文档的第五页时,PageNumber 才会递增为 2。 再举一个例子,如果文档以相反的顺序(从后到前)打印,则 PageNumber 标准变量仍然将要打印的第一页报告为第 1 页,即使这是文档的最后一页。 此行为是正确支持自动双工功能所必需的。 OEM 仅使用 PageNumber 来确定当前页面是正面还是背面。 打印作业正在进行时有效。
PaletteIndexToProgram 为下一个要编程的条目编制调色板的索引。 适用于 CmdDefinePaletteEntry 命令字符串。 (另请参阅 RedValueGreenValueBlueValueCurrentPaletteIndex)。
PatternBrushID 下载的图案刷的标识号。 适用于与 CmdDownloadPattern 和 CmdSelectPattern 命令字符串一起使用。
PatternBrushSize 当前图案刷的大小(以字节为单位)。 适用于与 CmdDownloadPattern 命令字符串一起使用。
PatternBrushType 当前图案刷的类型。 值可以是:2:底纹图案 3:交叉阴影图案 4:用户定义的图案。 适用于与 CmdDownloadPattern 和 CmdSelectPattern 命令字符串一起使用。
PhysPaperLength 当前正在使用的纸张的纵向模式长度(以 y 主单位表示)。 打印作业正在进行时有效。
PhysPaperWidth 当前正在使用的纸张的纵向模式宽度(以主单位表示)。 打印作业正在进行时有效。
PrintDirInCCDegrees 逆时针测量的旋转量(以度为单位)。 当驱动程序发送 CmdSetSimpleRotation 或 CmdSetAnyRotation 命令字符串时有效。
RasterDataHeightInPixels 由当前数据表示的图像的高度(以像素为单位)。 适用于任何 CmdSendXXXData 命令字符串和 CmdSetSrcBmpHeight 命令字符串。 压缩不会修改此值。
RasterDataWidthInBytes 扫描行中包含的字节数。 适用于任何 CmdSendXXXData 命令字符串和 CmdSetSrcBmpWidth 命令字符串。 压缩不会修改此值。
RectXSize 矩形宽度(以 x 主单位表示)。 适用于 CmdSetRectWidth 命令字符串。
RectYSize 矩形长度(以 y 主单位表示)。 适用于 CmdSetRectHeight 命令字符串。
RedValue 当前颜色的红色分量。 适用于 CmdDefinePaletteEntry 命令字符串(请参阅 GreenValueBlueValue)。
TextXRes 文本的当前水平分辨率(以 DPI 为单位)。 打印作业正在进行时有效。
TextYRes 文本的当前垂直分辨率(以 DPI 为单位)。 打印作业正在进行时有效。