提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|其它|编辑:郝浩|2010-05-14 11:52:48.000|阅读 7235 次
概述:设计报告不仅费时间,而且还乏味!但是,终端用户信赖打印的报告,同时大多数的应用也需要它们。因此,如何发挥你UI的功能并让你的用户把它呈递到纸上又会怎样呢?毋庸置疑,XtraPrinting Library肯定是你的最佳选择。在DEV控件包使用方面有多年研究的慧都控件网愿把使用XtraPrinting Library的经验与大家共分享。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
设计报告不仅费时间,而且还乏味!但是,终端用户信赖打印的报告,同时大多数的应用也需要它们。因此,如何发挥你UI的功能并让你的用户把它呈递到纸上又会怎样呢?毋庸置疑,XtraPrinting Library肯定是你的最佳选择。XtraPrinting Library 是100%的C#数据呈递和可视化系统。用于特殊的Visual Studio .NET且将你的用户接口与打印页面相连接。一旦你开始使用XtraPrinting Library,你就能方便的打印高级可视控件中的内容,正如XtraGrid和XtraTreeList一样简单。可以使你在不需要传统的报告编辑器的情况下能为你的终端用户提供无限制的报告。
那么,如何完美演绎XtraPrinting Library的打印功能呢? 在DEV控件包使用方面有多年研究的慧都控件网愿把使用XtraPrinting Library的经验与大家共分享。
首先要实现打印功能必须添加一个引用:DevExpress.XtraPrint。
实现打印需要用到的主要的类:
1. public class PrintingSystem : Component, ISupportInitialize,IPrintingSystem,IAccessible,IExporter,IPrintingSystemContext
该类负责提供生成报表的一些方法,还提供了对页面进行设置和打印报表的一些函数,这个类的属性包含了访问其他管理报表的对象,如Document类,BrickGraphics类(在报表上进行画图的类),XtraPageSettings类(提供对打印页面进行设置的操作)
2. public class PrintableComponentLink : Link
该类的功能是对实现DevExpress.XtraPrinting.IPrintable接口的所有控件进行打印,它提供了一些基本的生成和打印报表的功能。在生成报表以后可以通过PrintingSystem将报表打印出来。
通过以上这两个类就能完全实现各种控件打印了,只要一个控件实现了DevExpress.XtraPrinting.IPrintable这个接口就能够对该控件打印,如GridControl,CharControl等等,下面给出具体的实现方法:
public class PrintSettingController { PrintingSystem ps = null; string formName = null; PrintableComponentLink link = null; string _PrintHeader = null; /// <summary> /// 打印时的标题 /// </summary> public string PrintHeader { set { _PrintHeader = value; } } string _PrintFooter = null; /// <summary> /// 打印时页脚 /// </summary> public string PrintFooter { set { _PrintFooter = value; } } bool _landScape; /// <summary> /// 页面横纵向 /// </summary> public bool LandScape { set { _landScape = value; } } System.Drawing.Printing.PaperKind _paperKind; /// <summary> /// 纸型 /// </summary> public System.Drawing.Printing.PaperKind PaperKind { set { _paperKind = value; } } /// <summary> /// 打印控制器 /// </summary> /// <param name="control">要打印的部件</param> public PrintSettingController(IPrintable control) { if (control == null) return; Control c = (Control)control; formName = c.FindForm().GetType().FullName + "." + c.Name; ps = new DevExpress.XtraPrinting.PrintingSystem(); link = new DevExpress.XtraPrinting.PrintableComponentLink(ps); ps.Links.Add(link); link.Component = control; } /// <summary> /// 打印预览 /// </summary> public void Preview() { try { if (DevExpress.XtraPrinting.PrintHelper.IsPrintingAvailable) { Cursor.Current = Cursors.AppStarting; if (_PrintHeader != null) { PageHeaderFooter phf = link.PageHeaderFooter as PageHeaderFooter; //设置页眉 phf.Header.Content.Clear(); phf.Header.Content.AddRange(new string[] { "", _PrintHeader, "" }); phf.Header.Font = new System.Drawing.Font("宋体", 14, System.Drawing.FontStyle.Bold); phf.Header.LineAlignment = BrickAlignment.Center; //设置页脚 phf.Footer.Content.Clear(); phf.Footer.Content.AddRange(new string[] { "", "", _PrintFooter }); phf.Footer.Font = new System.Drawing.Font("宋体", 9, System.Drawing.FontStyle.Regular); phf.Footer.LineAlignment = BrickAlignment.Center; } link.PaperKind = ps.PageSettings.PaperKind ; link.Margins = ps.PageSettings.Margins; link.Landscape = ps.PageSettings.Landscape; link.CreateDocument(); //汉化 DevExpress.XtraPrinting.Localization.PreviewLocalizer.Active = new Dxperience.LocalizationCHS.DxperienceXtraPrintingLocalizationCHS(); ps.PreviewFormEx.Show(); } else { Cursor.Current = Cursors.Default; MessageBox.Show("打印机不可用 ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } finally { Cursor.Current = Cursors.Default; } } /// <summary> /// 打印 /// </summary> public void Print() { try { if (DevExpress.XtraPrinting.PrintHelper.IsPrintingAvailable) { if (_PrintHeader != null) { PageHeaderFooter phf = link.PageHeaderFooter as PageHeaderFooter; //设置页眉 phf.Header.Content.Clear(); phf.Header.Content.AddRange(new string[] { "", _PrintHeader, "" }); phf.Header.Font = new System.Drawing.Font("宋体", 14, System.Drawing.FontStyle.Bold); phf.Header.LineAlignment = BrickAlignment.Center; //设置页脚 phf.Footer.Content.Clear(); phf.Footer.Content.AddRange(new string[] { "", "", _PrintFooter }); phf.Footer.Font = new System.Drawing.Font("宋体", 9, System.Drawing.FontStyle.Regular); phf.Footer.LineAlignment = BrickAlignment.Center; } link.PaperKind = ps.PageSettings.PaperKind; link.Margins = ps.PageSettings.Margins; link.Landscape = ps.PageSettings.Landscape; link.CreateDocument(); link.CreateDocument(); //汉化 DevExpress.XtraPrinting.Localization.PreviewLocalizer.Active = new Dxperience.LocalizationCHS.DxperienceXtraPrintingLocalizationCHS(); ps.Print(); } else { Cursor.Current = Cursors.Default; MessageBox.Show("打印机不可用 ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } finally { } } //获取页面设置信息 public void LoadPageSetting() { System.Drawing.Printing.Margins margins = new System.Drawing.Printing.Margins(60, 60, 60, 60); ps.PageSettings.Assign(margins, _paperKind, _landScape); } }
客户端如何使用:实例化PrintSettingController,进行参数设置,包括页眉页脚横纵向纸型,当然所有这些设置信息也可以在PrintSettingControll类里进行设置了,我这里是需求的需要,所以加在了外面,PrintSystem.PageSettings属性是XtraPageSettings类型,XtraPageSettings类封装了所有的页面设置信息,你可以在LoadPageSetting()函数里面进行修改,来实现自己想要的功能,例如可以把设置信息保存成XML文件
PrintSettingController psc = new PrintSettingController(this.gridControl1);
//页眉
psc.PrintHeader = this.Text;
//页脚
psc.PrintFooter = this.dateTimePicker1.Text.ToString();
//横纵向
psc.LandScape = this.rbtnHorizon.Checked;
//纸型
psc.PaperKind = System.Drawing.Printing.PaperKind.A4;
//加载页面设置信息
psc.LoadPageSetting();
psc.Preview();
另外该类实现了对打印预览对话框的汉化功能,添加了一个引用DXChinese.dll,然后在程序中加入了以下代码即可实现汉化:
DevExpress.XtraPrinting.Localization.PreviewLocalizer.Active = new Dxperience.LocalizationCHS.DxperienceXtraPrintingLocalizationCHS();]
应广大客户的强烈要求,慧都为DevExpress for .NET用户量身打造了一款中文资源包,DevExpress 官方汉化资源 , 您只需极少花费便可获得这套完整、专业的汉化资源,从而使您的产品实现全面汉化。
慧都DevExpress高级培训大幕开启! 本次培训,旨在让您深入了解DevExpress控件的各项功能,帮您快速掌握产品使用方法、应用技巧、关键代码及常见问题处理技巧,同时我们将结合产品应用案例,DevExpress高级培训为您进行深入的行业分析,使您在整个项目开发中游刃有余。
(慧都控件网版权所有,转载请注明出处,否则追究法律责任)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:慧都控件网面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
最先进的表格控件、树形列表控件和数据编辑控件
ExpressPrinting System这个工具能将你现存的用户界面转换成引人注目的报告,它拥有Report Link技术并提供paper等丰富功能
ExpressQuantumTreeList Suite为程序开发人员提供更强大的树型结构列表功能
ExpressQuantumPack帮助你打造VCL业界最出众网格产品的必备控件包
DevExpress Universal Subscription行业领先的界面控件开发包,帮助企业构建卓越应用!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢