在用这个第三方插件做报表时,总结了几个问题!
在做类似表格的报表时,先用了PrintControl控件,因为有几级标题,用PageHeaderFooter类进行表头声明可以解决,换行也可以用字符串中加“\r\n来解决”
科室要解决几级标题的不同字体,就不好搞了!
因此我换了,LayoutControl控件蛮好,尽管报表是又标题有Grid,无所谓,我都拖到页面上,然后布局,把要打印的东西都拖进此控件,打印时,只需调用this.layoutControl1.Print();即可,不过我也发现一个问题,连续调用,会发现第二次的打印效果大 了!
因此我又换了方法,还是控件都在LayoutControl里面,然后声明PrintingSystem,在里面设置,代码如下:
PrintingSystem ps = new DevExpress.XtraPrinting.PrintingSystem();
DevExpress.XtraPrinting.PrintableComponentLink link = null;
link = new DevExpress.XtraPrinting.PrintableComponentLink(ps);
ps.Links.Add(link);
link.Component = layoutControl1;//将layoutcontrol控件和打印组件连接
link.CreateDocument(); //建立文档
//ps.PreviewFormEx.Text = "打印评分表";
//ps.PreviewFormEx.Owner = this;
ps.PageSettings.PaperKind = PaperKind.A4;
ps.PrintDlg();//调打印设置窗体
//ps.PreviewFormEx.Show();//预览
ps.Print();
这样的话可以很好控制打印了!!!
设置打印的内容边距如下
ps.PageSettings.TopMargin = 2;
ps.PageSettings.BottomMargin = 2;
ps.PageSettings.LeftMargin = 2;
ps.PageSettings.RightMargin = 2;