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();//進行預覽
}
