使用c#實現文檔的打印功能,輸出PDF格式文件的winform程序(使用windows自帶的打印功能,不用其他任何工具)
最近在使用c#編寫winform程序時,有一個需求,就是需要將顯示的結果輸出保存下來,保存到本機。
想到C#是否有這樣的控件或者功能,能夠滿足我這個需求。
“萬物皆可百度!” 噗! >_<
然後我就百度搜索相關的內容,看看是否可以給我一點提示或啓發。終於,功夫不負有心人!找到了很多的答案後,我再結合着自己的需求,按照自己的思路最終實現了我想要的功能。
於是在這裏分享一下,也就當做給自己做個總結吧。
在編寫winform程序時,左邊工具箱中,有很多的選項。
原來,專門有一欄是“打印”欄!!!
展開之後,發現有幾個所謂的“控件”。
pageSetupDialog:打印設置對話框控件。是一個頁面設置對話框,用於在Windows應用程序中設置打印頁面的詳細信息。
printDialog:打印時的對話框。
printDocument:可以設置打印文檔的屬性。(字體、字號、顏色等)。
printPreviewControl:打印預覽控件。
printPreviewDialog:打印預覽對話框。
winform程序
如圖設置好winform程序。
代碼
雙擊“printDocument1”控件,編輯代碼。
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
//設置字體樣式
Font f = new System.Drawing.Font("宋體", 25);
f = textBox1.Font;
//設置字體顏色
Brush b = new SolidBrush(textBox1.ForeColor);
//e.繪製.畫字符串(要打印的文本,文本格式,畫刷-顏色和紋理,位置座標)
e.Graphics.DrawString(textBox1.Text, f, b, 20, 10);
}
雙擊“預覽”控件,編輯代碼。
private void button1_Click(object sender, EventArgs e)
{
pageSetupDialog1.Document = printDocument1;
pageSetupDialog1.ShowDialog();
printPreviewControl1.Document = printDocument1;
}
雙擊“打印”控件,編輯代碼。
private void button2_Click(object sender, EventArgs e)
{
printDialog1.Document = printDocument1;
DialogResult dr = printDialog1.ShowDialog();
if (dr == DialogResult.OK)
{
printDocument1.Print();
}
}
驗證