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| 分类: 默认分类|字号 订阅 设计报告不仅费时间,而且还乏味!但 ...
- NET快速信息化系统开发框架 V3.2 -> “用户管理”主界面使用多表头展示、增加打印功能
RDIFrameowrk.NET 用户管理是使用非常频繁的模块,由于需要展示的字段比较多,以前的展示方式显得不是太规范,现3.2版本用户管理主界面进行了全新的设计,数据列表展示使用了Dev家族全新的G ...
- Atitit.收银系统pos 以及打印功能的行业标准
Atitit.收银系统pos 以及打印功能的行业标准 1. ESC指令序列 Escape指令序列不同于ESC/POS指令 1 2. 打印标准OPOS POSPrinter 与 CashDrawer 驱 ...
- jQuery:实现网页的打印功能
实现的打印功能大致跟浏览器的 Ctrl+P 效果一样 一.直接上代码 <!DOCTYPE html> <head> <meta charset="utf-8&q ...
- C#程序调用CodeSoft预先设计好的标签模块实现打印功能
if (this.tbSetLabel.Text.Trim() == "") { MessageBox.Show("请先 Enter 选择标签模板文件!", & ...
- web页面实现指定区域打印功能
web页面实现指定区域打印功能 使用CSS,定义一个.noprint的class,将不打印的内容放入这个class内. 详细如下: <style media=print type="t ...
- vc 实现打印功能
Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实现这 ...
- 开源的javascript实现页面打印功能,兼容所有的浏览器(情况属实)
这篇文章完全是属于技术文章,也是记录一下自己在项目当中遇到的坑爹问题啊,因为是B/S的程序,所以打印功能还是必须要有的,对于打印我选择了一个js插件,发现非常的简单和方便,所以这里拿出来和大家分享一下 ...
随机推荐
- xUtils3的简单介绍
xUtils3的简介 xUtils是基于Afinal开发的目前功能比较完善的一个Android开源框架,最近又发布了xUtil3.0,在增加新功能的同时又提高了框架的性能. 1.xUtils包含了很多 ...
- Oracle数据库——体系结构
一.涉及内容 1.了解数据库的物理存储结构和逻辑存储结构 二.具体操作 1.分别使用SQL 命令和OEM 图形化工具查看本地数据库的物理文件,并使用OEM 工具在现有的users 表空间中添加user ...
- Void 0
void anything 都返回 undefined , 使用Void 0 ,仅仅是因为习惯而已,所以不必介怀. 比较好的写法应该是 void(0)
- oracle OFA
Optimal Flexible Architecture 完全实现OFA至少需要三个文件系统位于不同的物理设备上,这些物理设备本身没有做条带或镜像.如果这些物理设备要做冗余与吞吐,建议使用一些存储相 ...
- Oracle 11g 数据库自动备份执行脚本
@echo offsetlocal enabledelayedexpansiontitle %date% %time:~,8% by LiaoNing Sunray Software Technolo ...
- IE7中line-height垂直居中问题
line-height:24px; *+line-height:24px; //针对ie7 height:24px
- Cobar使用文档(可用作MySQL大型集群解决方案)
原文:http://my.oschina.net/ydsakyclguozi/blog/374564 最近好不容易抽空研究了下Cobar,感觉这个产品确实很不错(在文档方面比Amoeba强多了),特此 ...
- input绑定datapicker控件后input再绑定blur或者mouseout等问题
input绑定datapicker控件后input再绑定blur或者mouseout等问题 问题描述:今天在修改一个东西的时候需要给一个input输入域绑定blur事件,从而当它失去焦点后动态修改其中 ...
- UI—代理简单使用
代理:又叫委托 通俗的说是自己不能办的事 委托给别人去办.比如UITextField,UIAlertView都使用了代理 写代理的步骤: 1.声明代理里面的协议方法(@protocl) 2.声明协议的 ...
- 【宋红康学习日记1】关于环境变量设置出现的问题——找不到或无法加载主类 java
忙活了一整天,最后被自己的小愚蠢所拜倒,不过也是学习到了很多,知道了出现问题怎样去解决. 问题是在cmd运行环境中编译我的第一个小程序HelloWorld时,javac命令可以运行,但是java命令后 ...