winform 打印
Posted 超级芒果
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform 打印相关的知识,希望对你有一定的参考价值。
pageSetupDialog
打印设置,和对话框控件差不多的套路,把控件拖到窗口中后,会在下方显示,
然后在制作的菜单中找到打印设置,双击进入点击事件写代码
按照之前的套路,
DialogResult drr = pageSetupDialog1.ShowDialog();
if (drr == DialogResult.OK)
{ }
执行的时候会报错,,就是说问题出现在页面设置,document(类似于一个文档的对象)
在打开打印设置的对话框之前要先告诉它要设置的是什么内容,才能让他把页面设置成什么样。
这里就需要一个这个控件,必须把想要打印的内容放到这个控件上去(不认识什么textbox控件给它让他打印控件),让所有的对话框控件都来针对他进行打印
把这个控件拖过去,还是在下方,右键点击属性,在事件里面有一个Printpage,不管设置什么东西,只要进行打印就会触发这个事件
就相当于一个中介,把要打印的东西都放到这里边,打印控件就从这里面抓要打印的东西,然后每次都会触发这个事件。
在事件后面的括号里,注意一下这里 这个object类型的sender代表的事触发事件的控件, e 就是触发事件中的事件数据。
这里要用这个e 。 这个e就是这个打印事件中的数据。
实际上程序在这不会开你的文字,程序打印的其实是一张图片,所以需要一个绘制的功能,把要打印的东西绘制到这个对象上去。
在这个事件中:
Font f = new Font("黑体",20);
Brush b = new SolidBrush(Color.Red);
e.Graphics.DrawString(textBox1.Text, f, b, 20, 50); //在这个数据上进行绘制, 绘制什么东西,(把什么东西往上画,用什么样式需要一个font类型(这里字体样式定义一个字体类型属性的变量来来控制),确定颜色和纹理需要一个Brush类型,绘制坐标点(可以通过xy坐标轴来控制)。
DrawString
然后再打印设置里面要声明 打印对象就是这个PrintDocument
private void 打印设置ToolStripMenuItem_Click(object sender, EventArgs e) { pageSetupDialog1.Document = printDocument1; DialogResult drr = pageSetupDialog1.ShowDialog(); if (drr == DialogResult.OK) { } } private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { Font f = new Font("黑体",20); Brush b = new SolidBrush(Color.Red); e.Graphics.DrawString(textBox1.Text, f, b, 20, 50);//在这个数据上进行绘制, 绘制什么东西,(把什么东西往上画,用什么样式需要一个font类型,(这里字体样式定义一个字体类型属性的变量来来控制),确定颜色和纹理需要一个Brush类型,绘制坐标点(可以通过xy坐标轴来控制)。 }
打印预览
private void 打印预览VToolStripMenuItem_Click(object sender, EventArgs e)
{
printPreviewDialog1.Document = printDocument1;
DialogResult dr = printPreviewDialog1.ShowDialog();
if (dr == DialogResult.OK)
{
}
会弹出一个预览打印效果的对话框
就长这样,空的因为里面没写东西。
打印 printDialog
private void 打印PToolStripMenuItem_Click(object sender, EventArgs e) { printDialog1.Document = printDocument1; DialogResult dr = printDialog1.ShowDialog(); if (dr == DialogResult.OK) { printDocument1.Print();// 选择这个中介里面的打印方法 } }
这里的 printDialog控件属性可以选择打开,可以选择调整什么属性。
这样打印就完成了。
打印控件:
要打印,第一步先要想到制作打印对象
PrintDocument - 默认事件
Font f = new Font("黑体",20);
Brush b = new SolidBrush(Color.Red);
e.Graphics.DrawString(textBox1.Text, f, b, 20, 50);
通过对于事件数据的绘制来制作要打印的内容
以上是关于winform 打印的主要内容,如果未能解决你的问题,请参考以下文章
C# Winform打印超市小票的代码,在点击收银按钮时,立马自动打印...跪求帮助,高分!
c#的winform打印程序如何实现一张纸上打印两份内容(如图)
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情