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打印超市小票的代码,在点击收银按钮时,立马自动打印...跪求帮助,高分!

argparse 代码片段只打印部分日志

打印质量winform

C#winForm打印窗口怎么设置打印居中

c#的winform打印程序如何实现一张纸上打印两份内容(如图)

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情