使用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 ...
随机推荐
- (0)ASP.NET Core 简单介绍 和开发环境搭建 - ASP.NET从MVC5升级到MVC6
ASP.NET从MVC5升级到MVC6 总目录 ASP.NET Core 首先,ASP原本只是一种技术,这种技术从上个世纪90年代就有了. Active Service Page 和 Java Ser ...
- Monkey Patch/Monkey Testing/Duck Typing/Duck Test
Monkey Patch Monkey Testing Duck Typing Duck Test
- JAVA 读写Excel
ExcelUtil.java package pers.kangxu.datautils.utils; import java.io.File; import java.io.FileInputStr ...
- 浅谈Slick(4)- Slick301:我的Slick开发项目设置
前面几篇介绍里尝试了一些Slick的功能和使用方式,看来基本可以满足用scala语言进行数据库操作编程的要求,而且有些代码可以通过函数式编程模式来实现.我想,如果把Slick当作数据库操作编程主要方式 ...
- HashMap 源码解析
HashMap简介: HashMap在日常的开发中应用的非常之广泛,它是基于Hash表,实现了Map接口,以键值对(key-value)形式进行数据存储,HashMap在数据结构上使用的是数组+链表. ...
- java接口调用——webservice就是一个RPC而已
很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过 ...
- Normalize.css的使用及下载
Normalize.css 只是一个很小的CSS文件,但它在默认的HTML元素样式上提供了跨浏览器的高度一致性.相比于传统的CSS reset,Normalize.css是一种现代的.为HTML5准备 ...
- Android中使用ImageViewSwitcher实现图片切换轮播导航效果
前面写过了使用ViewFlipper和ViewPager实现屏幕中视图切换的效果(ViewPager未实现轮播)附链接: Android中使用ViewFlipper实现屏幕切换 Android中使用V ...
- Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
转载:http://freeloda.blog.51cto.com/2033581/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负 ...
- j2ee项目服务器怎样部署?
1.右击项目 >> 点击如图1中❶ >> Project(选择项目) >> Add 如图1: 图1 2.点击Add >> Server ...