背景:

  1.在winform中,需要直接调用打印机,进行打印处理

2.找了很多实现方法是web的处理,然后查了下度娘,发现可以使用自带类PrintDocument进行处理,所以就有了这篇文章

说明:

  使用PrintDocument需要有几个步骤,如下:

  1. 需要定义全局变量PrintDocument

  2. 需要定义一个文本控件做处理

  3. 在程序初始化的时候,需要将设置画布的方法,加入到PrintDocument对象的PrintPage方法中

  4. 将打印机名赋值给PrintDocument对象的PrinterSettings对象的PrinterName

  5. 在自定义的文本控件中加入需要打印的内容

  6. 调用PrintDocument的Print方法进行打印输出

代码实现:

  
private PrintDocument pd = new PrintDocument(); /// <summary>
/// 打印内容使用TextBox控件printTextBox
/// </summary>
private TextBox printTextBox = new TextBox(); public Form1()
{
InitializeComponent();
// 加入打印页面的设置处理
pd.PrintPage += printdocument_PrintPage;
// 关联打印机 赋值打印机的名字
pd.PrinterSettings.PrinterName = "Microsoft Print to PDF";
} /// <summary>
/// 将打印内容 画在打印文档对象中
/// </summary>
private void printdocument_PrintPage(object sender, PrintPageEventArgs e)
{
try
{
Font fnt = printTextBox.Font;
Graphics g = e.Graphics;
long rowheight = printTextBox.Font.Height; //行距
for (int i = ; i < printTextBox.Lines.Length; i++)
{
g.DrawString(printTextBox.Lines[i], fnt, bsh, , + rowheight);
rowheight += printTextBox.Font.Height;
}
g.Dispose();
}
catch (Exception)
{
throw new Exception("打印失败!消息类型:2");
} } private void Form1_Load(object sender, EventArgs e)
{
/*
* 填写内容
*/ printTextBox.AppendText("测试处理");
// 执行打印
pd.Print();
}

使用PrintDocument进行打印的更多相关文章

  1. C# 利用PrintDocument定制打印单据

    本文是利用PrintDocument定制打印单据的小例子,仅供学习分享使用,如果不足之处,还请指正. 涉及知识点: PrintDocument :从 Windows 窗体应用程序打印时,定义一种可重用 ...

  2. 使用PrintDocument定制打印格式

    虽然说使在IE上直接调用打印插件打印已经不常用,但是有时候还是会用到,这里就记录一下. 首先我们列出来我们的打印类 public class PrintService { //打印机名称 privat ...

  3. PrintDocument组件打印

    运行效果: 代码: using System; using System.Collections.Generic; using System.ComponentModel; using System. ...

  4. (转)打印相关_C#(PrintDocument、PrintDialog、PageSetupDialog、PrintPreviewDialog)

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

  5. 吉特仓库管理系统-.NET打印问题总结

    在仓储系统的是使用过程中避免不了的是打印单据,仓库系统中包含很多单据:入库单,出库单,盘点单,调拨单,签收单等等,而且还附带着很多的条码标签的打印.本文在此记录一下一个简单的打印问题处理方式.处理问题 ...

  6. [asp.net]c# winform打印类

    using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using ...

  7. 网页WEB打印控件制作-开放源码

    在WEB系统中,打印的确是比较烦人的问题,如果我们能制作一个属于自己的自定义的打印插件,那么我们在后续自定义打印的时候能随心所欲的控制打印,这样的效果对于程序员来说是非常开心的一件事件,本文将自己开发 ...

  8. WinForm打印

    WinForm打印要用打印控件: PageSetupDialog:打印设置对话框 PrintDialog:打印对话框 PrintDocument:要打印的对象,非常重要 PrintPreviewCon ...

  9. winform 对话框、打印框

    winform 对话框控件 1.打开文件对话框(OpenFileDialog) 2.保存文件对话框(SaveFileDialog) 3.字体对话框(FontDialog) 4.颜色对话框(ColorD ...

随机推荐

  1. 关于Java泛型的使用

    在目前我遇到的java项目中,泛型应用的最多的就属集合了.当要从数据库取出多个对象或者说是多条记录时,往往都要使用集合,那么为什么这么使用,或者使用时有什么要注意的地方,请关注以下内容. 感谢Wind ...

  2. jQuery获取短信验证码+倒计时实现

    jQuery 短信验证码倒计时 <script type="text/javascript" charset="utf-8"> $(function ...

  3. SAP GUI的配置文件

    GUI是SAP系统最常用的客户端,在一台客户机上,利用GUI可以连接多套SAP系统(连接方法参见<客户端连接配置(SAP GUI 710)>),也可以设置多个快捷方式登录(参见<用快 ...

  4. Oracle研究专题:Oracle系统安装与配置

    最近开始研究Oracle数据库,盖因公司的系统要么Oracle要么是mysql吧. 作为一个IT工作者,没有碰过Oracle是一件很匪夷所思得事情. 想到过去几年,乃至接触IT行业开始就只有玩过sql ...

  5. How To Join XLA_AE_HEADERS and RCV_TRANSACTIONS? [ID 558514.1]

    Applies to: Oracle Inventory Management - Version: 12.0.6<max_ver> and later   [Release: 12 an ...

  6. 简单的学习心得:网易云课堂Android开发第六章SQLite与ContentProvider

    一.SQLite 1.基本操作: (1)创建数据库:在SQLiteOpenHelper的子类构造器中创建. (2)创建表:在SQLiteOpenHelper的子类onCreate方法中,调用execS ...

  7. 易企秀微场景2016最新完整版V10.5,小编亲测修复众多错误

    易企秀V10.5更新说明1.修复拨号英文错误2.修复转送场景问题3.修复设置场景密码乱码问题4.修复前台批量删除客户图片5.修复数据收集分页问题6.修复图片分类错乱问题7.修复音乐和特效冲突问题8.修 ...

  8. 第二章作业-第3题(markdown格式)-万世想

    第3题题目是: 完成小组的"四则运算"项目的需求文档(使用Markdown写文档),尝试同组成员在各自PC上修改同一文档后,如何使用Git命令完成GitHub上的文档的更新,而不产 ...

  9. 如何dos中查看当前MySQL版本信息?

    dos中MySQL安装服务成功--启动服务成功--登录MySQL成功后输入:select version();  如图:

  10. mdadm设定RAID磁盘阵列,且当分区故障后如何重建

    首先,fdisk建立不同分区,且设为fd格式 其次, mdadm -C md0 -a yes -l -n /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sd ...