zoukankan      html  css  js  c++  java
  • [转载]PrintDocument,PrintDialog与PrintPreviewDialog用法总结

    一、使用PrintDocument进行打印

    using System;
    using System.Drawing;
    using System.Drawing.Printing;
    using System.Windows.Forms;
     
    namespace PrintTest
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                //实例化打印对象
                PrintDocument printDocument1 = new PrintDocument();
                //设置打印用的纸张,当设置为Custom的时候,可以自定义纸张的大小
                printDocument1.DefaultPageSettings.PaperSize = new PaperSize("Custum", 500, 500);
                //注册PrintPage事件,打印每一页时会触发该事件
                printDocument1.PrintPage += new PrintPageEventHandler(this.PrintDocument_PrintPage);
                //开始打印
                printDocument1.Print();
            }
            private void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
            {
                //设置打印内容及其字体,颜色和位置
                e.Graphics.DrawString("Hello World!", new Font(new FontFamily("黑体"), 24), System.Drawing.Brushes.Red, 50, 50);
            }
        }
    }

    二、使用PrintDialog增加打印对话框

    using System;
    using System.Drawing;
    using System.Drawing.Printing;
    using System.Windows.Forms;
     
    namespace PrintTest
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                //实例化打印对象
                PrintDocument printDocument1 = new PrintDocument();
                //设置打印用的纸张,当设置为Custom的时候,可以自定义纸张的大小
                printDocument1.DefaultPageSettings.PaperSize = new PaperSize("Custum", 500, 500);
                //注册PrintPage事件,打印每一页时会触发该事件
                printDocument1.PrintPage += new PrintPageEventHandler(this.PrintDocument_PrintPage);
          
                //初始化打印对话框对象
                PrintDialog printDialog1 = new PrintDialog();
                //将PrintDialog.UseEXDialog属性设置为True,才可显示出打印对话框
                printDialog1.UseEXDialog = true;
                //将printDocument1对象赋值给打印对话框的Document属性
                printDialog1.Document = printDocument1;
                //打开打印对话框
                DialogResult result = printDialog1.ShowDialog();
                if (result == DialogResult.OK)                 
                    printDocument1.Print();//开始打印
            }
            private void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
            {
                //设置打印内容及其字体,颜色和位置
                e.Graphics.DrawString("Hello World!", new Font(new FontFamily("黑体"), 24), System.Drawing.Brushes.Red, 50, 50);
            }
        }
    }

    打印对话框如下图所示:

    三、使用PrintPreviewDialog增加打印预览对话框

    using System;
    using System.Drawing;
    using System.Drawing.Printing;
    using System.Windows.Forms;
     
    namespace PrintTest
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                //实例化打印对象
                PrintDocument printDocument1 = new PrintDocument();
                //设置打印用的纸张,当设置为Custom的时候,可以自定义纸张的大小
                printDocument1.DefaultPageSettings.PaperSize = new PaperSize("Custum", 500, 500);
                //注册PrintPage事件,打印每一页时会触发该事件
                printDocument1.PrintPage += new PrintPageEventHandler(this.PrintDocument_PrintPage);
          
                //初始化打印预览对话框对象
                PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog();
                //将printDocument1对象赋值给打印预览对话框的Document属性
                printPreviewDialog1.Document = printDocument1;
                //打开打印预览对话框
                DialogResult result = printPreviewDialog1.ShowDialog();
                if (result == DialogResult.OK)                 
                    printDocument1.Print();//开始打印
            }
            private void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
            {
                //设置打印内容及其字体,颜色和位置
                e.Graphics.DrawString("Hello World!", new Font(new FontFamily("黑体"), 24), System.Drawing.Brushes.Red, 50, 50);
            }
        }
    }

    打印时,会显示下图所示预览画面:

    注意:PrintDialog与PrintPreviewDialog位于名称空间System.Windows.Forms(程序集为System.Windows.Forms.dll)中,而PrintDocument位于名称空间System.Drawing.Printing(程序集为System.Drawing.dll)中。

  • 相关阅读:
    Lecture04_转换控制_GAMES101 课堂笔记——2020.2.21
    自动求梯度(pytorch版本)——2020.2.20
    深度学习之线性回归从零实现
    Lecture03_Transformation(变换)_GAMES101 课堂笔记——2020.2.18
    使用jupyter切换子环境,以及导致的`找不到指定模块`和`找不到指定的程序`问题
    多层感知机从0开始实现(Pytorch版本)——2020.2.16
    《动手学深度学习》(pytorch版本)中`d2lzh_pytorch`包问题
    Lecture02_向量与线性代数_GAMES101 课堂笔记——2020.2.14
    数据结构与算法(24)——优先队列和二叉堆
    剑指 Offer 06. 从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/yunfeifei/p/10419609.html
Copyright © 2011-2022 走看看