我正在使用带有 VS2010 的 c# 制作桌面应用程序,该应用程序的目的是填写表格(表格是其中有空格的物理纸)所以我的程序必须在确切的位置打印我想要的文本我需要打印它。
我的代码是这样的:
private void urinePrintDocument_PrintPage(object sender,System.Drawing.Printing.PrintPageEventArgs e)
{
//## event handler for urine printing
string FieldValue = ""; // to hold the current text to be printed
SolidBrush BlackBrush = new SolidBrush(Color.Black);
Font MyFont = new Font("Arial", 12, GraphicsUnit.Point); //the font to be used
int myFontHeight = (int)(MyFont.GetHeight(e.Graphics));
int CurrentX, CurrentY;
//millimeter XXXX
//inch XXXXX
//display - error
//Document - very small
// 100 Pixel = 1 inch
//100 Point - 1 inch
// 100 world - 1 inch
CurrentX = 0;
CurrentY = 0;
FieldValue = ptName;
e.Graphics.DrawString(FieldValue, MyFont, BlackBrush, CurrentX, CurrentY);
CurrentX = 100;
CurrentY = 100;
FieldValue = ptFileNumber;
e.Graphics.DrawString(FieldValue, MyFont, BlackBrush, CurrentX, CurrentY);
}
我的问题是关于这条线
Font MyFont = new Font("Arial", 12, GraphicsUnit.Point); //the font to be used
特别是 GraphicsUnit.Point 枚举器。我们有 GraphicsUnit.Point ,mmimeter ,inch,display ,Document,Pixel ,Point 和 world 。我已经尝试了所有这些,发现最后 3 个按预期打印文本,并且似乎每 100 个单位将文本“置换”一英寸。我需要我的代码在所有类型的打印机上产生相同的结果 3 之间有什么区别吗?我应该用哪一个在打印机上打印?