C#打印(PrintDocument、PrintDialog、PageSetupDialog、PrintPreviewDialog)

转载 2011年10月14日 09:46:02

 主要介绍了PrintDocument的主要属性、方法的应用。及打印过程中可能用的到得PrintDialog、PageSetupDialog、PrintPreviewDialog对话框。
代码:
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Printing;

namespace demo
{
    public partial class PrintOther : Form
    {
        
        public PrintOther()
        {
            InitializeComponent();
        }

        //PrintDocument类是实现打印功能的核心,它封装了打印有关的属性、事件、和方法
        PrintDocument printDocument = new PrintDocument();

        private void btnPrint_Click(object sender, EventArgs e)
        {
            //printDocument.PrinterSettings可以获取或设置计算机默认打印相关属性或参数,如:printDocument.PrinterSettings.PrinterName获得默认打印机打印机名称
            //printDocument.DefaultPageSettings   //可以获取或设置打印页面参数信息、如是纸张大小,是否横向打印等

            //设置文档名
            printDocument.DocumentName = "处方笺";//设置完后可在打印对话框及队列中显示(默认显示document)

            //设置纸张大小(可以不设置取,取默认设置)
            PaperSize ps = new PaperSize("Your Paper Name", 100, 70);
            ps.RawKind = 150; //如果是自定义纸张,就要大于118,(A4值为9,详细纸张类型与值的对照请看http://msdn.microsoft.com/zh-tw/library/system.drawing.printing.papersize.rawkind(v=vs.85).aspx)
            printDocument.DefaultPageSettings.PaperSize = ps;

            //打印开始前
            printDocument.BeginPrint += new PrintEventHandler(printDocument_BeginPrint);
            //打印输出(过程)
            printDocument.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);
            //打印结束
            printDocument.EndPrint += new PrintEventHandler(printDocument_EndPrint);

            //跳出打印对话框,提供打印参数可视化设置,如选择哪个打印机打印此文档等
            PrintDialog pd = new PrintDialog();
            pd.Document = printDocument;
            if (DialogResult.OK == pd.ShowDialog()) //如果确认,将会覆盖所有的打印参数设置
            {
                //页面设置对话框(可以不使用,其实PrintDialog对话框已提供页面设置)
                PageSetupDialog psd = new PageSetupDialog();
                psd.Document = printDocument;
                if (DialogResult.OK == psd.ShowDialog())
                {
                    //打印预览
                    PrintPreviewDialog ppd = new PrintPreviewDialog();
                    ppd.Document = printDocument;
                    if (DialogResult.OK == ppd.ShowDialog())
                        printDocument.Print();          //打印
                }
            }
        }

        void printDocument_BeginPrint(object sender, PrintEventArgs e)
        {
            //也可以把一些打印的参数放在此处设置
        }

        void printDocument_PrintPage(object sender, PrintPageEventArgs e)
        {
            //打印啥东东就在这写了
            Graphics g = e.Graphics;
            Brush b = new SolidBrush(Color.Black);
            Font titleFont = new Font("宋体", 16);
            string title = "五凤街道梅峰社区卫生服务站 处方笺";
            g.DrawString(title, titleFont, b, new PointF((e.PageBounds.Width - g.MeasureString(title, titleFont).Width) / 2, 20));

            //e.Cancel//获取或设置是否取消打印
            //e.HasMorePages    //为true时,该函数执行完毕后还会重新执行一遍(可用于动态分页)
        }

        void printDocument_EndPrint(object sender, PrintEventArgs e)
        {
            //打印结束后相关操作
        }
    }
}

 

 

 

 

J2EE vs. NET, Java vs. C#:比较公正的评价

J2EE vs. NET, Java vs. C#:Since theres been plenty of discussion on these topics, I thought Id write...
  • Nightmare
  • Nightmare
  • 2003-06-02 11:42:00
  • 1929

wpf 使用DocumentViewer打印

声明接口  ,用于实现IDocumentRenderer接口,作用后台代码根据数据行渲染出相应的的行 using System; using System.Collections.Generic; ...
  • duanzi_peng
  • duanzi_peng
  • 2013-11-04 09:06:08
  • 3998

wpf分页打印打印(使用printDialog.PrintDocument打印flowDocument文档)第一版本

  • 2014年03月27日 11:38
  • 1.29MB
  • 下载

C#打印相关知识

http://www.byywee.com/page/M0/S543/543762.html
  • conganguo
  • conganguo
  • 2014-06-21 17:18:35
  • 473

用WPF实现打印及打印预览

应该说,WPF极大地简化了我们的打印输出工作,想过去使用VC++做开发的时候,打印及预览可是一件极麻烦的事情,而现在我不会再使用C++来做Windows的桌面应用了——性价比实在太低。WPF的打印功能...
  • Andrewniu
  • Andrewniu
  • 2018-02-09 15:33:45
  • 207

WPF DocumentViewer隐藏工具栏和搜索栏

  • lc547913923
  • lc547913923
  • 2015-11-12 10:18:58
  • 2326

documentViewer xps xpsdocumnet 完整打印示例\Flow document

  • 2011年12月01日 13:34
  • 4.13MB
  • 下载

DEV 打印功能

Dev13.1 用的是DocumentViewer,上面的一排按钮,是自动生成的,生成方法为:加了DocumentViewer后,控件右上角有个小三角,点一下,在弹出框中选择"Create Stand...
  • fuck487
  • fuck487
  • 2015-08-06 15:39:03
  • 1961

VS2013自带报表+打印功能

VS自带报表控件和打印功能,这样就给我们这些编程者带来了很大的方便。下面就将我做程序的一些小经历来跟大家一起分享一下。 1,我们右击U层所在文件夹添加“新建项”。 ...
  • bigpudding24
  • bigpudding24
  • 2016-01-19 11:23:20
  • 9133

C# WPF打印报表

前天我的一个同学由于打印报表而苦恼,所以就介绍了一下WPF的打印报表,希望能帮助到大家。 展示报表 1. 首先新建项“报表”,选定项目,右击,点击“添加”-》“新建项”-》“报表” ...
  • binyao02123202
  • binyao02123202
  • 2013-12-26 10:08:01
  • 4719
收藏助手
不良信息举报
您举报文章:C#打印(PrintDocument、PrintDialog、PageSetupDialog、PrintPreviewDialog)
举报原因:
原因补充:

(最多只允许输入30个字)