DevExpress打印功能介绍 z
一、打印功能说明:
打印功能,我们有多种实现方式,可以根据需要自行选择,我简单的总结下两种方法。
(1)、使用微软.net框架自带的PrintDocument,这种方式是直接借助Graphics,自行调整位置和行间距等,一行行一页页绘画打印页面,虽然可控制性强,但是操作比较麻烦,而且细节和页面美化上,实现更是繁琐复杂。
(2)、使用DevExpress框架,这里面也有很多种打印方法,这段时间我主要使用的是GridControll+PrintingSystem方法来实现打印,总结了以下,希望能对其他人有些帮助。
二、打印功能详细说明:
(1)、DevExpress中有很多控件已经自身实现了打
印接口( IPrintable,
IBasePrintable等),即:此组件为了方便,提前对很多控件实现了打印功能。例如:GridControl,这个控件是我们用到的最多的数据
表格控件,常用来进行数据绑定和显示,操作和显示性都很好,对打印功能来说,基本能满足一般要求,但是需要对打印的文档进行详细细节的操作,可能无法满
足,所以加上PrintingSystem,打印控制便会更灵活。
(2)、详细代码实现:
public void Printing()
{
//相当于打印操作的控制器,起控制作用
PrintingSystem print = new PrintingSystem();
//相当于打印操作的实践者,真正完成打印功能操作
DevExpress.XtraPrinting.PrintableComponentLink link = null;
link = new DevExpress.XtraPrinting.PrintableComponentLink(print);
//借助GridControl控件提供打印格式和内容(根据需要提供)
link.Component = gridControlPrint;
//设置页眉和页脚
PageHeaderFooter phf = link.PageHeaderFooter as PageHeaderFooter;
//设置页脚位置
phf.Footer.LineAlignment = BrickAlignment.Center;
phf.Header.Content.Clear();
//设置页眉内容
string headText = "页眉内容信息";
phf.Header.Content.Add(headText);
//设置页眉字体
phf.Header.Font = new System.Drawing.Font("宋体", 12, System.Drawing.FontStyle.Regular);
//设置页眉内容位置
phf.Header.LineAlignment = BrickAlignment.Far;
print.Links.Add(link);
//设置内容页页脚信息(一般为页码信息)
link.CreateMarginalFooterArea += new CreateAreaEventHandler(link_CreateMarginalFooterArea);
//设置内容页页眉信息(一般为页标题信息)
link.CreateMarginalHeaderArea += new CreateAreaEventHandler(link_CreateMarginalHeaderArea);
//创建打印文档,此步完成文档的绘画生成
link.CreateDocument(print);
//设置文档的名称,即:输出的打印文件的名称。
print.Document.Name = _docName;
//设置是否显示打印提示框,即:打印了几页,当前是第几页等···
print.ShowPrintStatusDialog = false;
//开始调用打印驱动设备,进行打印!
print.Print();
}
void link_CreateMarginalHeaderArea(object sender, CreateAreaEventArgs e)
{
//页信息块,可以设置页相关信息,一般设置:打印的页码信息
//PageInfoBrick vPageInfoBrick1 =e.Graph.DrawPageInfo(PageInfo.NumberOfTotal, "第{0}页,共{1}页", Color.Black,
// new RectangleF(0, 0, 100, 21), BorderSide.None);
//vPageInfoBrick1.LineAlignment = BrickAlignment.Center;
//vPageInfoBrick1.Alignment = BrickAlignment.Center;
//vPageInfoBrick1.AutoWidth = true;
//vPageInfoBrick1.Font = new System.Drawing.Font("宋体", 16, FontStyle.Bold);
//纯文本信息块,设置一些文字性说明信息,一般设置:简单的说明信息
TextBrick text = e.Graph.DrawString("纯文字信息块", Color.Black, new RectangleF(10, 10, 100, 40), BorderSide.None);
}
void link_CreateMarginalFooterArea(object sender, CreateAreaEventArgs e)
{
PageInfoBrick vPageInfoBrick1 = e.Graph.DrawPageInfo(PageInfo.NumberOfTotal, "第{0}页,共{1}页", Color.Black,
new RectangleF(0, 0, 100, 21), BorderSide.None);
vPageInfoBrick1.LineAlignment = BrickAlignment.Center;
vPageInfoBrick1.Alignment = BrickAlignment.Center;
vPageInfoBrick1.AutoWidth = true;
vPageInfoBrick1.Font = new System.Drawing.Font("宋体", 11f, FontStyle.Bold);
}
说明:1、完成数据填装,为gridControlPrint填装数据表格和数据。
2、创建PrintingSystem打印控制器和PrintableComponentLink打印功能块,为PrintableComponentLink指定打印关联容器gridControlPrint
3、在PrintableComponentLink添加文档页眉和页脚处理事件,进行相应的自定义的动态调整。
4、最后执行创建文档和打印操作。
DevExpress打印功能介绍 z的更多相关文章
- DevExpress打印功能 z
一.打印功能说明: 打印功能,我们有多种实现方式,可以根据需要自行选择,我简单的总结下两种方法. (1).使用微软.net框架自带的PrintDocument,这种方式是直接借助Graphics,自行 ...
- 完美演绎DevExpress XtraPrinting Library 的打印功能
完美演绎DevExpress XtraPrinting Library 的打印功能 2010-05-14 17:40:49| 分类: 默认分类|字号 订阅 设计报告不仅费时间,而且还乏味!但 ...
- DevExpress v15.2新功能介绍视频(25集全)
DevExpress v15.2新功能介绍视频(25集全) http://www.devexpresscn.com/Resources/Documentation-508.html DevExpres ...
- Python中模块之re的功能介绍
re模块的功能介绍 1. 方法 match 从开头开始查找 方法:re.match(pattern,string,flags=0) 返回值:<class '_sre.SRE_Match'> ...
- NET快速信息化系统开发框架 V3.2 -> “用户管理”主界面使用多表头展示、增加打印功能
RDIFrameowrk.NET 用户管理是使用非常频繁的模块,由于需要展示的字段比较多,以前的展示方式显得不是太规范,现3.2版本用户管理主界面进行了全新的设计,数据列表展示使用了Dev家族全新的G ...
- .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍
Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...
- vc 实现打印功能
Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实现这 ...
- JS实现Web网页打印功能(IE)
问题描述: JS实现Web网页打印功能 问题解决: 这里主要使用WebBrowser控件的ExeWB在IE中打印功能的实现 WebBrowser介绍: WebBrows ...
- Python中str字符串的功能介绍
Str字符串的功能介绍 1. 字符串的操作 字符串的连接操作 符号: + 格式:str1 + str2 例如:str1 = 'I Love' str2 = 'You!' print(str1 + st ...
随机推荐
- HTML中块级元素和行内元素的总结和区分。
HTML标签 html标签定义: 是由一对尖括号包裹的单词构成,例如: <html>. 标签不区分大小写<html> 和 <HTML>, 推荐使用小写. 标签分为两 ...
- 贪心 - [POI2006]ORK-Ploughing
[POI2006]ORK-Ploughing 描述 Byteasar 想耕种他那块矩形的田,他每次能耕种矩形的一边(上下左右都行),在他每次耕完后,剩下的田也一定是矩形,每块小区域边长为 1,耕地的长 ...
- hibernate源码分析1-保存一个对象
要点 用了event的方式贯穿CRUD的过程 值得学习 用dynamic-insert 支持 插入时 可选 全字段插入 还是仅仅有值的字段插入. 返回主键的值 用了 Serializable 类型作为 ...
- MySQL 8.* 账号密码管理
修改密码: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码' 通过以下命令可以查看修改的账号 ...
- pat 1037
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.”现在,给定 ...
- hdu3667
Transportation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- Linux Shell系列教程
学习Linux Shell知识,就来Linux大学网(Linuxdaxue.com)! 本系列适合Linux初学者,属于Linux入门级教程,主要介绍了Shell的分类.语法格式以及脚本的使用和编写格 ...
- NOJ——1656搬砖(DP)
[1656] 搬砖 时间限制: 2000 ms 内存限制: 65535 K 问题描述 开学了,万恶的大二学长们又要领着大一的鲜肉们一起敲代码搬砖了,这不,著名的杨神拿着n块砖头,当然他把这n块砖头的重 ...
- UVa——540Team Queue(STL练习map、queue数组的综合使用)
Team Queue Time Limit: 3000MS ...
- 刷题总结——advanced fruits(hud1503)
题目: The company "21st Century Fruits" has specialized in creating new sorts of fruits by t ...