原文地址:http://www.cnblogs.com/smallsoftfox/archive/2012/06/25/2562718.html

参考文章:http://www.cnblogs.com/huangfr/archive/2011/09/25/2190579.html

参考文章:http://www.cnblogs.com/weixing/archive/2013/08/26/3283182.html

这几天一直在弄C#打印,下面整理过后的打印范例,主要介绍了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
{
publicpartialclass PrintOther : Form
{ public PrintOther()
{
InitializeComponent();
} //PrintDocument类是实现打印功能的核心,它封装了打印有关的属性、事件、和方法
PrintDocument printDocument =new PrintDocument(); privatevoid btnPrint_Click(object sender, EventArgs e)
{
//printDocument.PrinterSettings可以获取或设置计算机默认打印相关属性或参数,如:printDocument.PrinterSettings.PrinterName获得默认打印机打印机名称
//printDocument.DefaultPageSettings //可以获取或设置打印页面参数信息、如是纸张大小,是否横向打印等 //设置文档名
printDocument.DocumentName ="处方笺";//设置完后可在打印对话框及队列中显示(默认显示document) //设置纸张大小(可以不设置取,取默认设置)
PaperSize ps =new PaperSize("Your Paper Name", , );
ps.RawKind =; //如果是自定义纸张,就要大于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("宋体", );
string title ="社区卫生服务站 处方笺";
g.DrawString(title, titleFont, b, new PointF((e.PageBounds.Width - g.MeasureString(title, titleFont).Width) /, )); //e.Cancel//获取或设置是否取消打印
//e.HasMorePages //为true时,该函数执行完毕后还会重新执行一遍(可用于动态分页)
} void printDocument_EndPrint(object sender, PrintEventArgs e)
{
//打印结束后相关操作
}
}
}

(转)打印相关_C#(PrintDocument、PrintDialog、PageSetupDialog、PrintPreviewDialog)的更多相关文章

  1. [转载]PrintDocument,PrintDialog与PrintPreviewDialog用法总结

    一.使用PrintDocument进行打印 using System; using System.Drawing; using System.Drawing.Printing; using Syste ...

  2. (转)打印相关_C#图片处理Bitmap位图缩放和剪裁

    原文地址:http://blog.sina.com.cn/s/blog_6427a6b50101el9d.html 在GDI+中,缩放和剪裁可以看作同一个操作,无非就是原始区域的选择不同罢了. /// ...

  3. NPOI 教程 - 3.2 打印相关设置

    转:http://www.cnblogs.com/wolfplan/archive/2013/01/13/2858991.html NPOI 教程 - 3.2 打印相关设置   打印设置主要包括方向设 ...

  4. grep 打印相关行内容

    grep 打印相关行数常用参数: -r:关键字 -c:打印符合要求的行数 -i:忽略大小写 -n:输出行和行号 -v:打印不符合要求的行,即反选 -A:后跟数字(有无空格都可以),例如 -A3表示打印 ...

  5. 你所不知道的 CSS 阴影技巧与细节 滚动视差?CSS 不在话下 神奇的选择器 :focus-within 当角色转换为面试官之后 NPOI 教程 - 3.2 打印相关设置 前端XSS相关整理 委托入门案例

    你所不知道的 CSS 阴影技巧与细节   关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow  ...

  6. (链接)打印相关_.NET打印小资料

    掌握.NET中的日常打印:包括各个类的参数等 http://blog.csdn.net/dzweather/article/details/10171105 设置纸张大小 PrintDocument ...

  7. C# Winform 打印控件PrintDocument

    由于本着节约的原则,这里的打印都只是保存为.oxps格式的文件. 在我调试时每次打印完成后,窗体都会自己闪退. 在网上并没有相关资料,经过加入断点确认问题在 private void btnPrint ...

  8. .NET打印功能实现 PrintDocument

    //打印按钮 private void btnPrint_Click(object sender, EventArgs e) { if (this.printDialog1.ShowDialog() ...

  9. delphi 13 打印相关

    打印 页面设置 打印预览 文档属性     //---------------------------------------------------------------------------- ...

随机推荐

  1. pyquery的使用

    常用的三种初始化方法: 1.字符串初始化: from pyquery import PyQuery as pq html=""" <html> <hea ...

  2. 基于select类型多路IO复用,实现简单socket并发

    还有很多缺限,如客户断开无限重复 以下转至老师博客: server: #!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = " ...

  3. 进程池pool

    如果有多个进程,同一时间只能有限个给cpu运行 from multiprocessing import Process,Pool import time,os def bar(arg): print( ...

  4. DelphiXE5如何获取Android手机SIM卡串号[转]

    手机号不是存在SIM卡上的,SIM卡只有一个串号.在运营商的服务器上有手机号和序号对应的一张表.所以你SIM卡办理遗失,运营商只要把新SIM卡的串号和你原来的手机号绑定即可. 获取手机号的唯一办法是收 ...

  5. Oracle Split字符串

    为了让 PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成.REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行 ...

  6. 时间序列大数据平台建设(Time Series Data,简称TSD)

    来源:https://blog.csdn.net/bluishglc/article/details/79277455 引言在大数据的生态系统里,时间序列数据(Time Series Data,简称T ...

  7. wxPython 入门开发示例

    1.背景资料 wxPython API:https://www.wxpython.org/Phoenix/docs/html/ 2.入门示例 wxPython最重要的两个概念:App与Frame,其中 ...

  8. java锁在等待唤醒机制中作用

    等待的线程放在线程池wait().notify().notifyall()都使用在同步中,因为要对持有监视器(锁)的线程操作.所以要使用在同步中,因为只有同步才具有锁. 为什么这些操作的线程的方法要定 ...

  9. TweenMax 参考

    http://bbs.9ria.com/thread-214959-1-1.html TweenMax 可能是很多人都用的,包括我 但 是最近发现大量的运用就总会产生这样或那样的"怪事&qu ...

  10. 【Web前端】清除css、javascript及背景图在浏览器中的缓存

    在实际项目开发过过程中,页面是上传到服务器上的.而为了减少服务器的压力,让用户少加载,浏览器会将图片.css.js缓存到本地中,以便下次访问网站时使用.这样做不仅减少了服务器的压力,并且也减少了用户的 ...