建立一个简单的winform程序,添加一个textbox, 一个button,一个printDialog, 一个printDocument, 其中textbox设为允许多行,实现点击按钮,弹出选择打印机窗口,确定后将textbox内容打印到选择的打印机上
private void button1_Click(object sender, EventArgs e)
{
printDialog1.Document = printDocument1;
DialogResult result = printDialog1.ShowDialog();
if (result == DialogResult.OK)
printDocument1.Print();
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
/*
* * 得到TextBox中每行的字符串數組
* * \n換行
* * \r回車
*/
char[] param ={'\n'};
string[] lines = textBox1.Text.Split(param);
int i = 0;
char[] trimParam ={'\r'};
foreach (string s in lines)
{
//刪除每行中的\r
lines[i++] = s.TrimEnd(trimParam);
}
int x = 20;
int y = 20;
foreach (string line in lines)
{
/*
* * 4、把文本行發送給打印機,其中e是PrintPageEventArgs類型的一個變量,其屬性連接到打印機關聯文本中。
* * 打印機關聯文本可以寫到打印機設備上。
* * 輸出結果的位置用變更X和Y定義。
*/
e.Graphics.DrawString(line, new Font("Arial", 10), Brushes.Black, x, y);
y += 15;
}
}
printDocument1_PrintPage 是 printDocument1 的 PrintPage方法.