我对c#很陌生,需要帮助制作一份打印文件。
我已经设法通过此代码与打印机通信了:
private void Print(string printer)
{
PrintDocument PrintDoc = new PrintDocument();
PrintDoc.PrinterSettings.PrinterName = printer;
PrintDoc.PrintPage += new PrintPageEventHandler(PrintPage);
PrintDoc.Print();
}
void PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.DrawLine(new Pen(Color.Black), new Point(0, 0), new Point(100, 100));
e.Graphics.DrawString("Hello World", new Font("Times New Roman", 12), new SolidBrush(Color.Black), new Point(45, 45));
}
打印出我的“hello world”字符串。显然,PrintPage方法是我在网上找到的代码。 可悲的是,我找不到方法
a)设置我打印的纸张尺寸的格式(138mm x 99mm横向格式)
b)告诉打印机准确打印文本的位置。
该论文是一份预先印制的表格,我必须在特定领域写下我的文字。
所以我正在寻找一种方法来为我的打印机提供一个格式化文档,如:
<field1>
<x> 2cm </x>
<y> 1cm </y>
<text> textfield1 </text>
</field1>
<field2>
....
我找不到有关如何做到这一点的信息。所以,如果有人能告诉我如何做到这一点或者有一个很好的教程链接,我会非常感谢
答案 0 :(得分:2)
设置纸张尺寸
printDocument.DefaultPageSettings.PaperSize = new PaperSize("Custom Name", width, height);
printDocument.DefaultPageSettings.Landscape = true;
宽度和高度以百分之一英寸
请参阅this中的教程,以便在预先打印的纸张上打印文本。
另外,为了避免在实验过程中造成纸张浪费,请将预印纸作为图像进行扫描,并在预览期间将其设置为PrintPageHanlder
中的背景。
void printDocument_PrintPage(object sender, PrintPageEventArgs e)
{
if (printDocument.PrintController.IsPreview)
{
Image image = Image.FromFile("ScannedImagePath");
e.Graphics.DrawImage(image,0,0)
}
// print other text here after drawing the background
}