使用PrintDocument进行打印
背景:
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进行打印的更多相关文章
- C# 利用PrintDocument定制打印单据
本文是利用PrintDocument定制打印单据的小例子,仅供学习分享使用,如果不足之处,还请指正. 涉及知识点: PrintDocument :从 Windows 窗体应用程序打印时,定义一种可重用 ...
- 使用PrintDocument定制打印格式
虽然说使在IE上直接调用打印插件打印已经不常用,但是有时候还是会用到,这里就记录一下. 首先我们列出来我们的打印类 public class PrintService { //打印机名称 privat ...
- PrintDocument组件打印
运行效果: 代码: using System; using System.Collections.Generic; using System.ComponentModel; using System. ...
- (转)打印相关_C#(PrintDocument、PrintDialog、PageSetupDialog、PrintPreviewDialog)
原文地址:http://www.cnblogs.com/smallsoftfox/archive/2012/06/25/2562718.html 参考文章:http://www.cnblogs.com ...
- 吉特仓库管理系统-.NET打印问题总结
在仓储系统的是使用过程中避免不了的是打印单据,仓库系统中包含很多单据:入库单,出库单,盘点单,调拨单,签收单等等,而且还附带着很多的条码标签的打印.本文在此记录一下一个简单的打印问题处理方式.处理问题 ...
- [asp.net]c# winform打印类
using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using ...
- 网页WEB打印控件制作-开放源码
在WEB系统中,打印的确是比较烦人的问题,如果我们能制作一个属于自己的自定义的打印插件,那么我们在后续自定义打印的时候能随心所欲的控制打印,这样的效果对于程序员来说是非常开心的一件事件,本文将自己开发 ...
- WinForm打印
WinForm打印要用打印控件: PageSetupDialog:打印设置对话框 PrintDialog:打印对话框 PrintDocument:要打印的对象,非常重要 PrintPreviewCon ...
- winform 对话框、打印框
winform 对话框控件 1.打开文件对话框(OpenFileDialog) 2.保存文件对话框(SaveFileDialog) 3.字体对话框(FontDialog) 4.颜色对话框(ColorD ...
随机推荐
- 遍历map的四种方法
方法一 在for-each循环中使用entries来遍历这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用.注意:for-each循环在Java 5中被引入所以该方法只能应用于j ...
- 移动端web开发——视口
本篇主要是记录一下移动端视口的分类说明和其它的一些知识.在开始之前,先看一个典型的例子: <meta name="viewport" content="width= ...
- 手把手教你用FineBI做数据可视化
前些日子公司引进了帆软商业智能FineBI,在接受了简单的培训后,发现这款商业智能软件用作可视分析只用一个词形容的话,那就是“轻盈灵动”!界面简洁.操作流畅,几个步骤就可以创建分析,获得想要的效果.此 ...
- 改变Activity启动时的默认动画
why 在开发中我们可能需要改变这一行为,一般基于2种理由: 产品的spec这么要求的: 想自己控制这个行为,因为在Android设备上可能每个的这一默认行为都不一样,厂商可以很容易修改它,从而导致a ...
- Entity Framework之IQueryable和list本地集合
我们来说一下Iqueryable集合和List等本地集合的区别,下面我们通过建立一个简单的例子来学习这个知识点,直接进入主题吧 1.首先对比一下两段代码?看一下有什么结果: (1) 第一段代码如图所示 ...
- 使用c/c++扩展python
用python脚本写应用比较方便,但有时候由于种种原因需要扩展python(比如给程序提供python接口等). 之前一直想整理下,今天终于坐下来把这件事情给做了,这里记录下,也方便我以后查阅. 说明 ...
- v$session中server为none与shared值解析
查询V$SESSION,你会看到SERVER可能会有DEDICATED| SHARED| PSEUDO| NONE 四种值,如果SERVER字段的值除了DEDICATED,还有NONE,则说明当前实例 ...
- 用Retrofit发送请求中添加身份验证
用Retrofit发送请求中添加身份验证====================在安卓应用开发中, retrofit可以极大的方便发送http网络请求,不管是GET, POST, 还是PUT, DEL ...
- mysql主备(centos6.4)
服务器基本环境: 两台centos6.4.iptables diabled .selinux disabled 两台的hosts解析 #yum install mysql -y //这个一定要装 ...
- Arduino 1602液晶屏实验和程序
在Arduino IDE中, 项目->加载库->管理库中搜索LiquidCrystal,然后安装即可 1.接线图 2.引脚图 3.最简单程序 #include <LiquidCrys ...