您的位置:首页 > 其它

DevExpress Winform 通用控件打印方法(允许可自定义边距) z

2017-01-11 22:02 1311 查看
DevExpress Winform 通用控件打印方法,包括gridcontrol,treelist,pivotGridControl,ChartControl,LayoutControl...(所有支持打印功能的控件) ,同时允许用户自定义报表标题,报表纸张类型(A4,A3...),报表边距

/// <summary>

/// 打印功能

/// </summary>

/// <param name="panel">打印控件</param>

/// <param name="title">标题</param>

/// <param name="pageSize">纸张类型</param>

/// <param name="margins">边距</param>

protected virtual void Print(IPrintable panel, string title = null, PaperKind pageSize = PaperKind.A4, System.Drawing.Printing.Margins margins = null)

{

PrintingSystem ps = new PrintingSystem();

CompositeLink link = new CompositeLink(ps);                       PrintableComponentLink printableLink = new PrintableComponentLink() { Component = panel };

ps.Links.Add(link);

link.Links.Add(printableLink);

link.Landscape = true;//横向

link.PaperKind = pageSize;//设置纸张大小

if (margins == null)

margins = new System.Drawing.Printing.Margins(10, 10, 50, 50);

link.Margins = margins;

//判断是否有标题,有则设置

if (!string.IsNullOrEmpty(title))

{

PageHeaderFooter phf = link.PageHeaderFooter as PageHeaderFooter;

phf.Header.Content.Clear();

phf.Header.Content.AddRange(new string[] { "", title, "" });

phf.Header.Font = new System.Drawing.Font("宋体", 14, System.Drawing.FontStyle.Bold);

phf.Header.LineAlignment = BrickAlignment.Center;

phf.Footer.Content.AddRange(new string[] { "", String.Format("打印时间: {0:g}", DateTime.Now), "" });

}

link.CreateDocument(); //建立文档

ps.PreviewRibbonFormEx.Show();//进行预览

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐