如何在c#打印中设置打印点
本文关键字:打印 设置 | 更新日期: 2023-09-27 18:09:16
我的打印表单包含多个打印位置。我想将文本框文本传递到打印文档中的正确位置。我用(像素)来表示打印点。
g.DrawString("Total", new Font("Arial", 10, FontStyle.Regular), Brushes.Black, new Point(40, 160));
g.DrawString(": ", new Font("Arial", 10, FontStyle.Regular), Brushes.Blue, new Point(150, 160));
测量单位为厘米,并转换为像素。但它没有放在正确的位置。
我有什么选择来更好地控制测量单位?
在你的Graphics实例上PageUnit
的默认设置是Display
显示设备的度量单位。通常用于视频显示器的像素,用于打印机的1/100英寸。
所以在不改变任何东西的情况下,prininterdocument的图形实例上的一个点描绘的是1/100英寸。
有了这些信息,一个可能的解决方案是引入辅助方法将英寸计算为1/100英寸,将厘米计算为英寸。 public static PointF FromCm(float cmx, float cmy)
{
const float cm2inch = 1/2.54F;
return FromInch(cmx * cm2inch, cmy * cm2inch);
}
public static PointF FromInch(float inchx, float inchy)
{
return new PointF(inchx * 100, inchy * 100);
}
并像这样使用:
g.DrawString(
"Total",
new Font("Arial", 10, FontStyle.Regular),
Brushes.Black,
FromCm(1,1));
GraphicsUnit枚举确实有Millimeter
的设置。
g.PageUnit = GraphicsUnit.Millimeter;
g.DrawString(
"Total",
new Font("Arial", 10, FontStyle.Regular),
Brushes.Black,
new PointF(25 , 10)); // due to millimeter
// setting this is now 2,5 cm and 1 cm
在涂装过程中可以随时切换PageUnit
。因此,您可以混合和匹配任何方便的测量单位。