使用打印方法时,要先引用命名空间: Using System.Drawing.Pringing

PrintDocument类的重要属性和方法:
属性:
DocumentName  设置打印文档时要显示的文档名(在打印任务队列中显示)
DefaultPageSettings 打印页面设置
PrinterSettings 打印机设置
方法:
print() 进行打印
事件:
PrintPage  打印时触发的事件,在此事件对应的方法里用Grapics对象设置打印内容

例:简单打印出label1.text的内容

private void button1_Click(object sender, EventArgs e)
 {
 //实例化打印对象
 PrintDocument printdoc = new PrintDocument();
//定义打印对象的事件
 printdoc.PrintPage += new PrintPageEventHandler(printdoc_PrintPage);
//开始打印
 printdoc.Print();

}

void printdoc_PrintPage(object sender, PrintPageEventArgs e)
 {
//设置字体
 Font f=new Font("宋体",20);
//控制打印是什么内容 label1.text是打印内容 f是字体对象 brushes是填充颜色 10,10是打印到纸上的起始坐标
 e.Graphics.DrawString(label1.Text,f,Brushes.Black,10,10);
 }

e.Graphics.DrawString(label1.Text,f,Brushes.Black,10,10); 我们现在来看一下前面这条语句,e.Graphics中的e对象是PrintPageEventArgs 类型的对象,PrintPageEventAgrs参数是专门为PrintPage事件提供数据的对象,是一个系统封装好并传递给你处理的对象。我们已经看到了,这个对象里面有一个Graphics属性,通过这个属性就可以为打印机提供打印内容。除此之外,PrintPageEventArgs参数里还有其他几个常用的重要属性,归纳起来如下:

cancel 设置是否取消打印作业,true为取消打印

HasMorePages 是否打印附加页,true为继续打印下一页,false为只打印当前页

MarginBounds 获取表示边距以内页面部分的矩形区域,返回Rectangle对象

PageBounds 获取表示页面全部区域的矩形区域,返回Rectangle对象

Pagesettings 获取当前页的页设置对象,返回pagesettings对象

PageBounds 可以想象成画图的纸张 MarginBounds想象成画图纸张除掉边缘的作图区域

HasMorePages就是告诉打印机,你是否还有下一页要打印,如果没有就设置为False

例:创建一个有打印功能的程序

1.加入控件 PrintDocument 加入打印功能

e.Graphics.DrawString("旺财你好",new Font("宋体",20),brushes.black,10,10);

2.加入控件 PagePreviewDialog 加入预览功能 在document属性加入printDocument 在button中加入printpreviewdialog.showdialog();

3.加入pageSetUpDialog 控件和PrintDialog控件,然后设置这两个控件Document属性为printDocument

4.添加一个打印按钮,在按钮中加入如下代码

//打印机设置
 if (printDialog.ShowDialog()==DialogResult.OK)
 {
 //页面设置
 if (pageSetupDialog.ShowDialog()==DialogResult.OK)
 {
 //开始打印
 printDocument.Print();
 }
 }

分类: C#中winform学习资料

使用打印方法时,要先引用命名空间: Using System.Drawing.Pringing的更多相关文章

  1. .net如何引用System.Drawing.Drawing2D 命名空间和System.Drawing.Image及其相关概念

    其实这个很简单,直接在引用那里单击右键选择添加框架,然后找到System.Drawing就OK了, 其实并没有网上所说的那样需要下载什么Drawing.BLL. 首先Syetem.Drawing.Dr ...

  2. 使用引用类型变量来访问所引用对象的属性和方法时,Java 虚拟机绑定规则

    通过引用类型变量来访问所引用对象的属性和方法时,Java 虚拟机将采用以下绑定规则: 实例方法与引用变量实际引用的对象的方法进行绑定,这种绑定属于动态绑定,因为是在运行时由 Java 虚拟机动态决定的 ...

  3. 打印页面时a标签不显示URL的方法

    以前写博客啊,总想写一篇大作,然后希望能挂到博客园首页,隔一会儿看看阅读量有多少.其实哪有那么多大作,大部分时间都是解决了一个小问题,然后需要记录一下.比如下面这篇. 今天遇到一个需求是,打印网页时, ...

  4. [改善Java代码]覆写equals方法时不要识别不出自己

    建议45: 覆写equals方法时不要识别不出自己 我们在写一个JavaBean时,经常会覆写equals方法,其目的是根据业务规则判断两个对象是否相等,比如我们写一个Person类,然后根据姓名判断 ...

  5. c#引用命名空间的作用

    System 包含用于定义常用值和引用数据类型.事件和事件处理程序.接口.属性和处理异常的基础类和基类.其他类提供支持下列操作的服务:数据类型转换,方法参数操作,数学计算,远程和本地程序调用,应用程序 ...

  6. C#面向对象---对象成员、方法加载、引用类库

    一.方法重载: 1.两个函数同名,就互相构成方法的重载关系 2.重载的函数,必须跟其他函数之间具有不同的参数类型或参数个数 二.字段与属性 类的字段: 类里面是可以直接定义变量的,这些变量就叫类的字段 ...

  7. Java 方法的重载及引用数据类型(类)

    方法的重载 我们假设要在程序中实现一个对数字求和的方法,由于参与求和数字的个数和类型都不确定,因此要针对不同的情况去设计不同的方法. Java允许在一个类中定义多个名称相同的方法,但是参数的类型或个数 ...

  8. 转网页WB.ExecWB控件打印方法

    网页WB.ExecWB控件打印方法 2010-02-01 12:48 代码: <table width="100%" cellpadding="1" on ...

  9. 分享一个牛逼的PHP无限极分类生成树方法,巧用引用(转)

    你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了.这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. function g ...

随机推荐

  1. 流量监控iftop安装-CentOS7

    继之前撘的服务器后路由器一直崩溃,今天找到了原因.之前被下的木马并没有被删掉,而是一直在传输数据.占用了所有宽带. 官网(http://www.ex-parrot.com/pdw/iftop/down ...

  2. 给 C# Expression Evaluator 增加中文变量名支持

    由于一些特殊的原因,我的Expression里面需要支持中文变量名,但是C# Expression Evaluator会提示错误,在他的HelperMethods.IsAlpha()里面加上这么一段就 ...

  3. zookeeper的安装和部署

    参考: https://testerhome.com/topics/11361 http://blog.csdn.net/lihao21/article/details/51778255 https: ...

  4. hdu 6154 CaoHaha's staff

    CaoHaha's staff Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  5. openfalcon源码分析之transfer

    本节内容 transfer功能 transfer接收数据来源 transfer数据去向 transfer的一致性hash transfer的一致性hash key的计算 transfer源码分析 2. ...

  6. 『转』G Data InternetSecurity 2014 – 免费3个月

    G Data来自德国的顶级杀毒软件,采用BitDefender+CloseGap双引擎,屡获AV-TEST防護率100%.不多介绍,目前2014中文版没有上市.活动地址:点此进入官方网站:点此进入申请 ...

  7. java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout

    java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()L ...

  8. Django 之 Ajax

    此次主要是做省市区的三级联动. 环境:django 1.10 1. urls.py # coding:utf-8 from django.conf.urls import url import vie ...

  9. 《Unity 3D游戏客户端基础框架》多线程异步 Socket 框架构建

    引言: 之前写过一个 demo 案例大致讲解了 Socket 通信的过程,并和自建的服务器完成连接和简单的数据通信,详细的内容可以查看 Unity3D -- Socket通信(C#).但是在实际项目应 ...

  10. Python数据类型-02.字符串

    本文主要记录字符串的相关知识,包括字符串的定义特点,常用方法和 请知悉: 计算机中,一切皆为对象世界万物,皆为对象,一切对象皆可分类 1.什么是字符串? 类似"hello world&quo ...