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相关推荐
- NET快速信息化系统开发框架 V3.2 - “用户管理”主界面使用多表头展示、增加打印功能...
NET快速信息化系统开发框架 V3.2 -> "用户管理"主界面使用多表头展示.增加打印功能 RDIFrameowrk.NET 用户管理是使用非常频繁的模块,由于需要展示的字 ...
- js打印到控制台_如何实现可复用的控制台“艺术字”打印功能
之前在使用一些开源项目时,经常会看到在控制台输出项目大大的 LOGO.例如: hexo minos 主题启动时在控制台里会显示「MINOS」文案 fis3 启动时也会有显示「FIS」 添加这种大号「艺 ...
- bartender实现即扫即打印功能扫描完后自动打印_日本彩色激光打印机推荐人气排名15款...
彩色激光打印机推荐的人气排名15款[2020最新版本] 彩色激光打印机具有比家庭使用更高的商业用途.打印速度快且成本低,可提高业务生产率.在这里,我们将介绍如何选择彩色激光打印机,最受推荐的15个热门 ...
- Win10打印功能(组件)恢复(修复)
一. 注册表 1.控制及类 pe-sys\ControlSet001\Control\Print pe-sys\ControlSet001\Control\Class\{1ed2bbf9-11f0-4 ...
- MIS开发中.net Framework的打印功能
Microsoft .net Framework的打印功能都以组件的方式提供,为程序员提供了很大的方便,但是这几个组件的使用还是很复杂的,有必要解释一下. 打印操作通常包括以下四个功能 1 打印设置 ...
- window.print()前端实现打印功能
方法介绍 window.print()方法用于打印当前窗口的内容. 默认打印页面中body里的所有内容. 调用 print() 方法会产生一个打印预览弹框,让用户可以设置打印配置. 1. 打印方法 1 ...
- php可以打印一个页面,利用html实现分页打印功能的实例详解
本篇介绍利用html实现分页打印功能的实例详解,有些不想打印出来的分页打印的都可以应用这类样式进行控制 在非打印时是无效的. 页面打印 /* 应用这个样式的在打印时隐藏 */ .noPrint { d ...
- 开源的javascript实现页面打印功能,兼容所有的浏览器(情况属实)
这篇文章完全是属于技术文章,也是记录一下自己在项目当中遇到的坑爹问题啊,因为是B/S的程序,所以打印功能还是必须要有的,对于打印我选择了一个js插件,发现非常的简单和方便,所以这里拿出来和大家分享一下 ...
- 在该系统上全局禁用了虚拟打印功能,不会为该虚拟机启用此功能--解决办法
问题描述:在开启此虚拟机时,提示在该系统上全局禁用了虚拟打印功能,不会为该虚拟机启用此功能. 解决办法:在VMware workstation页面依次点击 编辑--首选项--设备--启用虚拟机打印-- ...
最新文章
- Firetruck UVA - 208
- python中的点表示什么_Python里面这些点,新手看完之后完全不知道这些点
- Spring核心——IOC处理器扩展
- 3.1.5 动态分区分配算法
- linux下的一些操作命令
- Python爬虫之xpath的详细使用(爬虫)
- 将用户添加到sudoers_Linux系统如何添加普通用户到 sudoers 文件
- Xcode统计整个项目代码行数
- 细说PHP(精要版)
- 如何用python进行数据处理?(一)
- html5 span 点击选择,设置span标签不可点击技术分享
- 2017计算机夏令营汇总
- 安全的网络通道——网络准入之三层准入
- python 制作 gif 动态图
- 文件存储、块存储还是对象存储?
- Apollo control模块纵向控制原理及核心代码逐行解析
- MATLAB遗传神经网络算法学习
- OpenStack 2014 用户调查解析——中国部署规模仅次于美国
- 免费分享下载最新全国省市区县和乡镇街道行政区划矢量边界坐标经纬度地图数据 shp geojson json sql格式
- 如何计算已知坐标之间的角度?
热门文章
- 解决傲游浏览器没有兼容模式
- Dynamic Setting ImageUrl In DataPager
- 网页测试本地服务器_音视频开发搭建一个直播服务器
- RecylerView动画组件RecylerViewAnimators
- Web服务评估工具Nikto
- 地铁7号线路图_南京地铁S1号线机场线,都经过哪些地方?如何查询地铁换乘?查询站点信息?...
- python设计抽奖游戏 球_python3实现小球转动抽奖小游戏
- java 判断一个数字是2倍数_如何判断语言发育迟缓的原因|一个2岁半不会说话的案例...
- [CES 2018] 联想公布全球首款Daydream一体机,第二季度或将发售
- VR社交应用程序vTime支持Oculus Touch