指定纸张方向

重要

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

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

有三个标准选项与方向标准功能相关联:PORTRAIT、LANDSCAPE_CC90 和 LANDSCAPE_CC270.。 除非另有指定,否则默认方向为 PORTRAIT。 此选项的使用很简单,本主题不再进一步讨论。 本主题的平衡涉及两种横向选项。

LANDSCAPE_CC90 和 LANDSCAPE_CC270

方向功能的 LANDSCAPE_CC90 和 LANDSCAPE_CC270 选项指示在纵向模式下应用于文本和图形的旋转量,以将其转换为横向模式。 LANDSCAPE_CC90 选项将文本和图形逆时针旋转 90 度。 LANDSCAPE_CC270 选项将文本和图形逆时针旋转 270 度,相当于顺时针旋转 90 度。 对于这两个选项,Unidrv 都会处理将文本和图形旋转到指定量的任务,并根据新的方向适当地移动它们。

许多打印机同时支持纵向模式和横向模式,而其余打印机(通常是功能较少的打印机)仅支持纵向模式。 每个模式都有自己的坐标系:在纵向模式下,原点位于左上角(x 向右增加,y 向下增加):在横向模式下,原点位于左下角(x 向上增加,向右增加 y)。

不支持横向模式的打印机仍可按此方向打印文档。 对于这种类型的打印机,必须在打印机的 GPD 文件中指定 LANDSCAPE_CC270 选项。 (如果为这些打印机指定 LANDSCAPE_CC90 选项,则打印时文本和图形将出现乱码。)在此选项下,Unidrv 会向打印机显示转换后的文本和图形,并显示相对于打印机左上角原点的坐标。

对于支持横向模式和纵向模式的打印机,应在 GPD 文件中指定 LANDSCAPE_CC90 选项。 在此选项下,必须指示 Unidrv 向打印机发出横向命令字符串,使其从纵向模式坐标系切换到横向模式坐标系(原点位于左下角)。 然后,Unidrv 将转换后的文本和图形以相对于打印机左下角原点的坐标呈现给打印机。

但是,支持横向模式的打印机(通常使用 LANDSCAPE_CC90 选项)仍可使用 LANDSCAPE_CC270 选项进行操作。 在此选项下,Unidrv 被指示将打印机视为仅支持纵向模式(即,只有一个坐标系,原点位于左上角)。 因此,不得指示 Unidrv 发出更改坐标系的命令。 Unidrv 将转换后的文本和图形以相对于左上角原点的坐标显示给打印机。 由于 Unidrv 假定此原点位置,因此即使用户在打印机属性页上选择了横向方向,也不得向此类打印机发出横向模式命令字符串。 在下面的 GPD 文件示例中,请注意,*Option: LANDSCAPE_CC270 部分包含一个将打印机置于纵向模式的命令 (ORIENT_PORTRAIT_CMD),而不是一个将其置于横向模式的命令。

*Feature: Orientation
{
  *rcNameID: =ORIENTATION_DISPLAY
  *DefaultOption: PORTRAIT
  *Option: PORTRAIT
  {
    *rcNameID: =PORTRAIT_DISPLAY
    *Command: CmdSelect
    {
      *Order: DOC_SETUP.60
      *Cmd: =ORIENT_PORTRAIT_CMD
    }
  }
  *Option: LANDSCAPE_CC270
   {
     *rcNameID: =LANDSCAPE_DISPLAY
     *Command: CmdSelect
     {
       *Order: DOC_SETUP.60
       *Cmd: =ORIENT_PORTRAIT_CMD
     }
  }
}

对于 Windows 7,MxdcGetPDEVAdjustment 函数具有用于横向旋转的新参数。 有关详细信息,请参阅 MxdcXDCGetPDEVAdjustment