DevExpress Winform 通用控件打印方法(允許可自定義邊距) z


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

        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM