HP-GL/2 注意事项
重要
新式打印平台是 Windows 与打印机通信的首选方式。 建议使用 Microsoft 的 IPP 收件箱类驱动程序以及打印支持应用 (PSA) 来自定义 Windows 10 和 11 中的打印体验,以便进行打印机设备开发。
有关详细信息,请参阅新式打印平台和打印支持应用设计指南。
HP-GL/2 仅适用于 Windows XP 及之后版本操作系统随附的 Unidrv 版本(Windows XP Unidrv 指 Windows XP 随附的一组驱动程序文件 - unidrv.dll、unidrvui.dll、unires.dll 和 stdnames.gpd)。 它无法在 Windows 2000 Unidrv 上运行。 如果运行 Windows 2000 的机器上有 Windows XP 版本的 Unidrv(例如,当 Windows 2000 机器与运行 Windows Server 2003 或更高版本的机器进行指向和打印连接时),则驱动程序将使用 HP-GL/2。
在激活 HP-GL/2 模式时,GPD 中的某些呈现命令会被忽略。 取而代之的是使用驱动程序中的硬编码命令。 然而,由于以下原因,这些命令必须出现在 GPD 中:
在之后的操作系统版本中,呈现命令的硬编码可能会被取消。
HP-GL/2 驱动程序提供了切换到光栅模式(即不使用 HP-GL/2 驱动程序)的选项。 对于光栅模式,GPD 中必须包含所有命令。
一个好的经验法则是,任何用于实际绘制的 PCL-XL/HP-GL/2 命令(例如,CmdDownloadPattern 或 CmdSelectBlackBrush)都将被忽略。 页面设置、文档设置等非绘图命令不会被忽略。 有关这些命令的详细信息,请参阅颜色命令。
此外,所有 HP-GL/2 命令都会被硬编码在驱动程序中。
调用 DrvBitBlt 和其他位块传输函数时收到的掩码可能无法正常工作。
在 Windows 2000 上使用 Windows XP Unidrv 并激活 HP-GL/2 时,某些图形呈现功能可能无法正常工作。 例如,调用 DrvGradientFill 时输出的红色和蓝色是相反的。
Unidrv 会假定打印机硬件支持 ROP 命令。 如果打印机不支持 ROP,某些文档可能无法正确打印。
需要支持阴影画笔。 如果打印机不支持阴影画笔,则输出将取决于打印机硬件如何处理阴影画笔选择命令 (FT21,x SV21,x)。
对于单色打印机,阴影画笔的颜色将被忽略。 它始终会被打印为黑色。
对于彩色打印机,HP-GL/2 只支持 24 bpp/600 dpi。 对于黑白打印机,HP-GL/2 仅支持 600 dpi。 如果打印机支持其他值,则只有在颜色深度为 24 bpp 和分辨率为 600 dpi 时才可选择 HP-GL/2 模式。 以下示例展示了如何修改 GraphicsMode 功能来实现这一目的。 在本例中,如果分辨率功能的 Option2 值不是 600x600 dpi,则第一个 *Constraints 项会导致 Unidrv 拒绝将模式更改为 HPGL2MODE。 (在本例中,假设 Option2 的值为某个较低分辨率,如 300x300 dpi。)如果 ColorMode 功能的选项是 Color 或 8bpp,则第二个 *Constraints 项会导致 Unidrv 拒绝模式更改。
*Feature: GraphicsMode { *rcNameID: =GRAPHICSMODE_DISPLAY *FeatureType: DOC_PROPERTY *HelpIndex: 12000 *DefaultOption: HPGL2MODE *Option: HPGL2MODE { *rcNameID: =GRAPHICSMODE_HPGL2_DISPLAY *Constraints: Resolution.Option2 *Constraints: LIST(ColorMode.Color, ColorMode.8bpp) } *Option: RASTERMODE { *rcNameID: =GRAPHICSMODE_RASTER_DISPLAY } }
彩色打印机必须能够在硬件上缩放图像。 黑白打印机则没有这项要求。
对于黑白打印机,假定为:
- 打印机只接受 1bpp 信息。
- 设置为 1 的位表示黑色像素,设置为 0 的位表示白色像素。
- 打印机不能对任何颜色进行灰度处理。 (这自然源于 1 bpp 的限制。)
必须支持以下压缩方法:
- 无压缩
- TIFF
- 增量行
HP-GL/2 不执行系统横向旋转。 启用 HP-GL/2 后,假定打印机将处理横向打印页面的光栅、字体和坐标的旋转。 要解决这个问题,请确保所有 GPD 旋转参数(*RotateCoordinate?、*RotateFont? 和 *RotateRaster? 属性)都设置为 TRUE。 如果打印机在旋转时出现内存溢出问题,则应考虑不激活 HP-GL/2,或对内存进行限制(即只有当内存为 4 MB 或更大时才能激活 HP-GL/2)。
在内存不足的设备上(例如,内存为 2 MB 的 600 dpi 黑白激光打印机),当设备处于 HP-GL/2 模式时会产生内存不足错误的某些页面可能会在光栅模式下正确打印。 对于内存不足全位图的设备,一种解决方案是编写 GPD,使光栅模式成为默认模式,并让系统处理横向旋转,而不是 HP-GL/2。 此外,某些复杂的纵向打印作业可能在光栅模式下打印正确,但在 HP-GL/2 模式下打印不正确。 如果是这种情况,则应考虑将光栅模式设为默认模式。
在 HP-GL/2 模式下,打印机属性页“高级”选项卡上的打印优化功能目前已被忽略。
在 HP-GL/2 模式下不支持 *MirrorRasterPage?。
即使 GPD 文件指定设备支持大纲字体,TrueType 轮廓字体也有可能作为光栅字体下载。 出现这种情况有多种原因(例如,打印机内存不足)。