标准变量

重要

建议使用 Microsoft 的 IPP 收件箱类驱动程序,以及 Print Support Apps (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,否则设置为零。 指定字体时有效。
FontHeight 当前字体的高度(以主控单位为单位)。 指定字体时有效。
FontItalic 如果当前字体为斜体,则设置为 1,否则设置为零。 指定字体时有效。
FontMaxWidth 设置为字体中所有字形的最大字符增量。 指定字体时有效。
FontStrikeThru 如果为当前字体启用了删除线,则设置为 1,否则设置为零。 指定字体时有效。
FontUnderLine 如果当前字体带有下划线,则设置为 1,否则设置为零。 指定字体时有效。
FontWidth 当前字体的宽度(以主控单位为单位)。 指定字体时有效。
GraphicsXRes 图形的当前水平分辨率(以 DPI 为单位)。 每当打印作业正在进行时有效。
GraphicsYRes 图形的当前垂直分辨率,以 DPI 为单位。 每当打印作业正在进行时有效。
GrayPercentage 灰色级别 (用于灰色填充的百分比) 。 在 CmdRectGrayFill 命令字符串中有效。
GreenValue 当前颜色的绿色分量。 在 CmdDefinePaletteEntry 命令字符串中有效, (请参阅 BlueValue,RedValue) 。
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 为单位)。 每当打印作业正在进行时有效。