DevExpress打印功能介紹


DevExpress打印功能介紹

一、打印功能說明:

打印功能,我們有多種實現方式,可以根據需要自行選擇,我簡單的總結下兩種方法。

(1)、使用微軟.net框架自帶的PrintDocument,這種方式是直接借助Graphics,自行調整位置和行間距等,一行行一頁頁繪畫打印頁面,雖然可控制性強,但是操作比較麻煩,而且細節和頁面美化上,實現更是繁瑣復雜。

(2)、使用DevExpress框架,這里面也有很多種打印方法,這段時間我主要使用的是GridControll+PrintingSystem方法來實現打印,總結了以下,希望能對其他人有些幫助。

 

二、打印功能詳細說明:
(1)、DevExpress中有很多控件已經自身實現了打印接口( IPrintable, IBasePrintable等),即:此組件為了方便,提前對很多控件實現了打印功能。例如:GridControl,這個控件是我們用到的最多的數據表格控件,常用來進行數據綁定和顯示,操作和顯示性都很好,對打印功能來說,基本能滿足一般要求,但是需要對打印的文檔進行詳細細節的操作,可能無法滿足,所以加上PrintingSystem,打印控制便會更靈活。

(2)、詳細代碼實現:
   public void Printing()
        {
           
            //相當於打印操作的控制器,起控制作用
            PrintingSystem print = new PrintingSystem();
            //相當於打印操作的實踐者,真正完成打印功能操作
            DevExpress.XtraPrinting.PrintableComponentLink link = null;
            link = new DevExpress.XtraPrinting.PrintableComponentLink(print);
            //借助GridControl控件提供打印格式和內容(根據需要提供)
            link.Component = gridControlPrint;
            //設置頁眉和頁腳
            PageHeaderFooter phf = link.PageHeaderFooter as PageHeaderFooter;
            //設置頁腳位置
            phf.Footer.LineAlignment = BrickAlignment.Center;
            phf.Header.Content.Clear();
            //設置頁眉內容
            string headText = "頁眉內容信息";
            phf.Header.Content.Add(headText);
            //設置頁眉字體
            phf.Header.Font = new System.Drawing.Font("宋體", 12, System.Drawing.FontStyle.Regular);
            //設置頁眉內容位置
            phf.Header.LineAlignment = BrickAlignment.Far;
            print.Links.Add(link);
            //設置內容頁頁腳信息(一般為頁碼信息)
            link.CreateMarginalFooterArea += new CreateAreaEventHandler(link_CreateMarginalFooterArea);
            //設置內容頁頁眉信息(一般為頁標題信息)
            link.CreateMarginalHeaderArea += new CreateAreaEventHandler(link_CreateMarginalHeaderArea);
            //創建打印文檔,此步完成文檔的繪畫生成
            link.CreateDocument(print);
            //設置文檔的名稱,即:輸出的打印文件的名稱。
            print.Document.Name = _docName;
            //設置是否顯示打印提示框,即:打印了幾頁,當前是第幾頁等···
            print.ShowPrintStatusDialog = false;
            //開始調用打印驅動設備,進行打印!
            print.Print();
        }

 

     void link_CreateMarginalHeaderArea(object sender, CreateAreaEventArgs e)
        {
          
            //頁信息塊,可以設置頁相關信息,一般設置:打印的頁碼信息
            //PageInfoBrick vPageInfoBrick1 =e.Graph.DrawPageInfo(PageInfo.NumberOfTotal, "第{0}頁,共{1}頁", Color.Black,
            //   new RectangleF(0, 0, 100, 21), BorderSide.None);
            //vPageInfoBrick1.LineAlignment = BrickAlignment.Center;
            //vPageInfoBrick1.Alignment = BrickAlignment.Center;
            //vPageInfoBrick1.AutoWidth = true;
            //vPageInfoBrick1.Font = new System.Drawing.Font("宋體", 16, FontStyle.Bold);
           
            //純文本信息塊,設置一些文字性說明信息,一般設置:簡單的說明信息
            TextBrick text = e.Graph.DrawString("純文字信息塊", Color.Black, new RectangleF(10, 10, 100, 40), BorderSide.None);

          
        }

        void link_CreateMarginalFooterArea(object sender, CreateAreaEventArgs e)
        {
            PageInfoBrick vPageInfoBrick1 = e.Graph.DrawPageInfo(PageInfo.NumberOfTotal, "第{0}頁,共{1}頁", Color.Black,
               new RectangleF(0, 0, 100, 21), BorderSide.None);
            vPageInfoBrick1.LineAlignment = BrickAlignment.Center;
            vPageInfoBrick1.Alignment = BrickAlignment.Center;
            vPageInfoBrick1.AutoWidth = true;
            vPageInfoBrick1.Font = new System.Drawing.Font("宋體", 11f, FontStyle.Bold);
           
        }

 

說明:1、完成數據填裝,為gridControlPrint填裝數據表格和數據。

        2、創建PrintingSystem打印控制器和PrintableComponentLink打印功能塊,為PrintableComponentLink指定打印關聯容器gridControlPrint

        3、在PrintableComponentLink添加文檔頁眉和頁腳處理事件,進行相應的自定義的動態調整。

        4、最后執行創建文檔和打印操作。


免責聲明!

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



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