zoukankan      html  css  js  c++  java
  • 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);

    通过对于事件数据的绘制来制作要打印的内容

  • 相关阅读:
    Maximum Depth of Binary Tree
    Single Number
    Merge Two Sorted Lists
    Remove Nth Node From End of List
    Remove Element
    Remove Duplicates from Sorted List
    Add Two Numbers
    编译视频直播点播平台EasyDSS数据排序使用Go 语言 slice 类型排序的实现介绍
    RTMP协议视频直播点播平台EasyDSS在Linux系统中以服务启动报错can’t evaluate field RootPath in type*struct排查
    【解决方案】5G时代RTMP推流服务器/互联网直播点播平台EasyDSS实现360°全景摄像机VR直播
  • 原文地址:https://www.cnblogs.com/big-lll/p/6804117.html
Copyright © 2011-2022 走看看