指定纸张方向

重要

建议使用 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