Devexpress(开发快车)打印问题总结

感觉用开发快车做出来的界面真不错,打印方面也很方便,微软的水晶报表发布后安装维护都挺麻烦的。

这几天闲来无事,看了下开发快车的一些打印方式,总结出如下几种方式。其实官方帮助很详细,此文

仅做为学习笔记。

1 XtraLayout 输出(最简单的方式)。可以将需要打印的控件等添加到layerout里面,

  不过这些界面不太好弄,打印出来界面也不是太理想

layoutControl1.ShowPrintPreview();

layoutControl1.Print()

2 其他实现了IPrintable接口的控件也可以直接打印。

  比如XtraGridControl, 直接调用 print()就可以了。

当想添加标题等额外功能时,需要使用DevExpress.XtraPrinting.PrintableComponentLink此对象来实现。也就是说不能使用gridControl控件的print()方法(此处网上多个地方有说明)

代码
1 PrintingSystem ps=new DevExpress.XtraPrinting.PrintingSystem();
2
3 DevExpress.XtraPrinting.PrintableComponentLink link=null;
4
5 link=new DevExpress.XtraPrinting.PrintableComponentLink(ps);
6
7 ps.Links.Add(link);
8
9 link.Component=urGridControl;//实现IPrintable接口的控件都可以赋值
10  
11  string strPrintHeader="HeardInfo";
12
13 PageHeaderFooter phf = link.PageHeaderFooter as PageHeaderFooter;
14
15 phf.Header.Content.Clear();
16
17 phf.Header.Content.AddRange(new string[] {"",_PrintHeader,""});
18
19 phf.Header.Font=new System.Drawing.Font("宋体",14,System.Drawing.FontStyle.Bold);
20
21 phf.Header.LineAlignment=BrickAlignment.Center;
22
23 link.CreateDocument(); //建立文档
24  
25 ps.PreviewForm.Show();//预览
26  

3 想让打印效果更好的时候就需要我们设计报表了。

  类似微软的水晶报表

  ASP.NMT页面与水晶报表方式基本一致

  新建报表类,在页面中添加reportview控件

代码
1 XtraReprt port=new XtraReprt();
2
3 Reportview1.report=port;
4
5 Reportview.print ();
6
7 //但是在winform中却用PrintControl来代替ReportView,此处觉得有点
8 //奇怪。 代码也有稍微变化。
9  
10 XtraReport1 report = new XtraReport1();
11
12 // Bind the report's printing system to the print control.
13
14 printControl1.PrintingSystem = report.PrintingSystem;
15
16 // Generate the report's print document.
17
18 report.CreateDocument();
19
原文地址:https://www.cnblogs.com/lhjhl/p/1824859.html