使用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();
}
}
验证