C#打印类PrintDocument、PrintDialog、PrintPreviewDialog使用示例

1.使用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);
    }
  }
}

2.使用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);
    }
  }
}

打印对话框如下图所示。

3.使用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)中。

(0)

相关推荐

  • C#打印类PrintDocument、PrintDialog、PrintPreviewDialog使用示例

    1.使用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

  • PHP云打印类完整示例

    本文实例讲述了PHP云打印类.分享给大家供大家参考,具体如下: 一个项目需求要几百台电脑都有打印功能,本来是想用网络打印机的,后来发现没有网络打印机,就自己动手写一个打印类算了. 类实现想法是:先把要打印的数据都收集起来,在用js调用window打印函数.目前就使用于IE. 类提供打印排队功能.(PS,说白了就是一条一条读取数据) class Wprint{ //收集打印代码 private $data = array(); //处理打印代码 private $handle; public fu

  • Python用类实现扑克牌发牌的示例代码

    1. 题目 编写程序, 4名牌手打牌,计算机随机将52张牌(不含大小鬼)发给4名牌手,在屏幕上显示每位牌手的牌. 提示: 设计出3个类:Card类.Hand类和Poke类. Card类代表一张牌,其中FaceNum字段指出是牌面数字1~13,Suit字段指出的是花色,值"梅"为梅花,"方"为方块,"红"为红心,"黑"为黑桃. Hand类代表一手牌,可以认为是一位牌手手里的牌,其中cards列表变量存储牌手手里的牌.可以增加牌.

  • C#实现的ZPL条码打印类完整实例

    本文实例讲述了C#实现的ZPL条码打印类.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Diagnostics; using System.Drawing; using System.Drawing.Drawing2D; using System.Runtime.InteropS

  • Java压缩文件工具类ZipUtil使用方法代码示例

    本文实例通过Java的Zip输入输出流实现压缩和解压文件,前一部分代码实现获取文件路径,压缩文件名的更改等,具体如下: package com.utility.zip; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import

  • Python 根据日志级别打印不同颜色的日志的方法示例

    本文介绍了Python 根据日志级别打印不同颜色的日志的方法示例,分享给大家,具体如下: # -*-coding:UTF-8-*- import logging import os import time class logger(object): """ 终端打印不同颜色的日志,在pycharm中如果强行规定了日志的颜色, 这个方法不会起作用, 但是 对于终端,这个方法是可以打印不同颜色的日志的. """ #在这里定义StreamHandler

  • idea实现类快捷生成接口方法示例

    本文主要介绍了idea实现类快捷生成接口方法示例,分享给大家,具体如下: 接口类 实现类 当我们实现了接口后,并没有像eclipse那样,鼠标放上去就会提示生成接口方法 鼠标定位到UserService类后面,快捷键:Alt+Enter: 选择Implement methods. 选中点OK就自动生成了. 还有一种方法,将鼠标放在接口的名称处按 Alt+Enter 键,就会出现下面页面: 鼠标左键单击:Implement interface ,进入创建实现类的名字以及指明其所在的包的界面 点击O

  • Java通过反射来打印类的方法实现

    目录 一. 案例出发 二. 反射方法的分析 2.1 反射的方式 2.2 修饰符的打印 2.3 getDeclaredxxx和getxxx的区别 2.4 getSimpleName和getName有什么不同 工作了有一段时间了,我觉得是时候去复习下Java的一些基础知识,因此写下了这篇文章.平常开发过程中,前端写的比较多,后端也不能忘! 一. 案例出发 先准备一个模板类: public class User { public int id; private String name; public

  • Redis工具类封装RedisUtils的使用示例

    此RedisUtil工具类的功能: 直接使用此RedisUtil工具类的所需条件: 项目基于SpringBoot. pom.xml中需要引入依赖spring-boot-starter-data-redis. pom.xml中需要引入依赖lombok. pom.xml中需要引入依赖fastjson. 注:其中第3.4点不是必须的,在此工具类中,第3.4点只是为了方便记录日志而已.注:当然,如果是非SpringBoot的项目,那么也可以通过xml配置等方式,来使用此工具类,自行摸索吧. Spring

  • python实现打印类的所有属性和方法

    目录 打印类的所有属性和方法 python中更多种类的打印 1.print("." * 10) 是输出10个 "." 2.用了一个自定义的函数 formatter 3.这个主要是讲定义的字符串可以直接打印出来 打印类的所有属性和方法 利用dir(obj)方法获得obj对象的所有属性和方法名,返回一个list. for item in dir(top_k_metergroup):  #top_k_metergroup是某类的一个实例化对象     print(item

随机推荐