主控单元
重要
新式打印平台是 Windows 与打印机通信的首选方式。 建议使用 Microsoft 的 IPP 收件箱类驱动程序以及打印支持应用 (PSA) 来自定义 Windows 10 和 11 中的打印体验,以便进行打印机设备开发。
有关详细信息,请参阅新式打印平台和打印支持应用设计指南。
大多数打印机都支持具有各种水平分辨率和垂直分辨率的命令。 例如,特定打印机的“立即换行”命令可能提供 1/288 英寸的分辨率,而同一打印机可能支持 1/96 英寸的垂直图形分辨率。 同样,这台打印机也可能提供 1/80、1/160 和 1/320 英寸的水平分辨率。
Unidrv 提供一个单个坐标系来处理这些不同的分辨率。 这个坐标系中的单位称为主单位。 打印机的主单元表示为一对值 (x, y),其中 x 是水平方向的主单元,y 是垂直方向的主单元。
若要确定平面的主单位,请计算实际分辨率的分母的最小公倍数 (LCM)。 使用示例打印机,可以执行以下操作:
计算 80、160 和 320 的 LCM,即 320。 因此,水平主单元是 1/320 英寸。
计算 288 和 96 的 LCM,即 576。 因此,垂直主单元是 1/576 英寸。
重要
主单元值以及垂直分辨率和水平分辨率都应是打印头中引脚数量的倍数(即 PinsPerPhysPass 值)。 如果不满足此条件,对于某些纸张大小,可能会产生额外的空白行。
若要指定打印机的主单元,请使用 *MasterUnits 属性。 该属性的格式如下:
*MasterUnits: PAIR ( X_Denominator , Y_Denominator )
其中 X_Denominator 是水平分辨率的分母的 LCM,Y_Denominator 是垂直分辨率的分母的 LCM。 以下 GPD 条目指定示例的主单元:
*MasterUnits: PAIR(320, 576)
通常,GPD 文件条目中使用的位置和大小值必须以主单位指定。 例如,若要指定示例打印机的最大自定义页面大小为 9 英寸乘 12 英寸,将使用以下条目,其中 9x320=2880 和 12x576=6912:
*MaxSize: PAIR(2880, 6912)
计算主单元的值时,请仅使用希望 Unidrv 支持的设备分辨率。 例如,如果打印机支持 1/80、1/96、1/160 和 1/320 英寸的水平分辨率,但你不打算在 GPD 文件中指定 1/96 英寸的分辨率,请不要将其包含在 LCM 计算中。
如果打印机支持光标命令来移动光标位置,那么为 *XMoveUnit 和 *YMoveUnit光标属性指定的值必须包含在主单位计算中。 例如,假设 GPD 文件包含以下条目:
*XMoveUnit: 60
*YMoveUnit: 60
计算此打印机的主单元时,水平和垂直主单位计算中必须包括 1/60 英寸。