DevExpress Winform printing method common controls (allowing customizable margins, paper size)

DevExpress Winform common controls printing methods, including gridcontrol, treelist, pivotGridControl, ChartControl, LayoutControl ... ( all supported print function controls, that as long as there are types of controls to achieve Iprinttable Interface ), while allowing the user to customize the report title, report the type of paper ( A4, A3 ...), the report margins
 

/// <summary>
        /// 打印功能
        /// </summary>
        /// <param name="panel">打印控件</param>
        /// <param name="title">标题</param>
        /// <param name="pageSize">纸张类型</param>
        /// <param name="margins">边距</param>
        public static 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();//进行预览 
        }

 

Guess you like

Origin blog.csdn.net/u012097590/article/details/94722398