自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#打印源碼的具體實現(xiàn)

開發(fā) 后端
這里將介紹C#打印源碼的具體實現(xiàn),打印在.NET中的實現(xiàn)在一些工具的幫助下,不會很困難,但也要注意參數(shù)的調(diào)整。希望本文對大家有所幫助。
C#打印源碼也是打印控件的功能之一,這里介紹的C#打印源碼可以實現(xiàn)自動打印處理,不過需要mdi文件的支持。

打印的原理是:生成mdi文件,系統(tǒng)碰到mdi的時候會自動以打印的方式處理。所以,不管用什么模板,什么方式;能在PrintPage事件處理中,生成一張要打印內(nèi)容的圖片就OK了!

C#打印源碼如下:

  1. #region 打印  
  2.         private void btnPrint_Click(object sender, EventArgs e)  
  3.         {  
  4.             //打印預(yù)覽  
  5.             //PrintPreviewDialog ppd = new PrintPreviewDialog();  
  6.             PrintDocument pd = new PrintDocument();  
  7.             //設(shè)置邊距  
  8.             Margins margin = new Margins(20, 20, 20, 20);  
  9.             pd.DefaultPageSettings.Margins = margin;  
  10.             ////紙張設(shè)置默認(rèn)  
  11.             //PaperSize pageSize = new PaperSize("First custom size", 800, 600);  
  12.             //pd.DefaultPageSettings.PaperSize = pageSize;  
  13.             //打印事件設(shè)置  
  14.             pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);  
  15.             //ppd.Document = pd;  
  16.             //ppd.ShowDialog();  
  17.             try 
  18.             {  
  19.                 pd.Print();  
  20.             }  
  21.             catch (Exception ex)  
  22.             {  
  23.                 MessageBox.Show(ex.Message, "打印出錯", MessageBoxButtons.OK, MessageBoxIcon.Error);  
  24.                 pd.PrintController.OnEndPrint(pd, new PrintEventArgs());  
  25.             }  
  26.         }  
  27.         //打印事件處理  
  28.         private void pd_PrintPage(object sender, PrintPageEventArgs e)  
  29.         {  
  30.             string date = lblDate.Text; //當(dāng)前日期  
  31.             string flowId = lblFlowId.Text; //流水號  
  32.             string payDate = PayDate.Year.ToString() + "年" + PayDate.Month.ToString() + "月"//應(yīng)收年月  
  33.             string adminId = lblAdminId.Text; //操作員編號  
  34.             string baseExpense = lblBaseExpense.Text; //應(yīng)交基本費用  
  35.             string fine = lblFine.Text; //罰款數(shù)目  
  36.             string upExpense = lblUpExpense.Text; //上月上余  
  37.             string actualExpense = txtActualExpense.Text; //實際應(yīng)交費用  
  38.             string chineseExpense = DecimalToChinese.ConvertSum(actualExpense); //實際應(yīng)交費用的中文大寫  
  39.  
  40.    //讀取圖片模板  
  41.             Image temp = Image.FromFile(@"Receipts.jpg");  
  42.             GetResultIntoImage(ref temp, UserId, flowId, date, baseExpense, fine, upExpense, actualExpense, chineseExpense, payDate, adminId);  
  43.             int x = e.MarginBounds.X;  
  44.             int y = e.MarginBounds.Y;  
  45.             int width = temp.Width;  
  46.             int height = temp.Height;  
  47.             Rectangle destRect = new Rectangle(x, y, width, height);  
  48.             e.Graphics.DrawImage(temp, destRect, 0, 0, temp.Width, temp.Height, System.Drawing.GraphicsUnit.Pixel);  
  49.         }  
  50.  
  51.         ///   
  52.         /// 將收費結(jié)果填充到圖片模板  
  53.         /// 
  54.  
  55.         private void GetResultIntoImage(  
  56.             ref Image temp,  
  57.             string userId,  
  58.             string flowId,  
  59.             string currentDate,  
  60.             string baseExpense,  
  61.             string fine,  
  62.             string upExpense,  
  63.             string actualExpense,  
  64.             string chineseExpense,  
  65.             string payDate,  
  66.             string adminName)  
  67.         {  
  68.             //讀取圖片模板  
  69.             Graphics g = Graphics.FromImage(temp);  
  70.  
  71.             Font f = new Font("宋體", 12);  
  72.             Brush b = new SolidBrush(Color.Black);  
  73.               
  74.    //填充數(shù)據(jù)到圖片模板(位置要在制作圖片模板的時候度量好)  
  75.             g.DrawImage(temp, 0, 0, temp.Width, temp.Height);  
  76.             g.DrawString(userId, f, b, 168, 105);  
  77.             g.DrawString(UserName, f, b, 166, 134);  
  78.             g.DrawString(flowId, f, b, 535, 105);  
  79.             g.DrawString(currentDate, f, b, 535, 134);  
  80.             g.DrawString(baseExpense, f, b, 219, 202);  
  81.             g.DrawString(fine, f, b, 372, 202);  
  82.             g.DrawString(upExpense, f, b, 486, 202);  
  83.             g.DrawString(actualExpense, f, b, 596, 202);  
  84.             g.DrawString(chineseExpense, f, b, 196, 238);  
  85.             g.DrawString(payDate, f, b, 176, 269);  
  86.             g.DrawString(adminName, f, b, 497, 298);  
  87.  
  88.             g.Dispose();  
  89.         }  
  90.         #endregion  

【編輯推薦】

  1. C# GreetPeople方法
  2. C# Hashtable對象分析
  3. 常用C# Arraylist的介紹
  4. C# Observer設(shè)計模式
  5. C#交錯數(shù)組淺析
責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2009-08-26 12:59:08

C#打印設(shè)置

2009-08-26 09:54:45

C#打印預(yù)覽C#打印

2009-08-26 13:22:24

C#打印程序

2009-09-11 09:59:47

2009-08-26 10:43:14

C#實現(xiàn)打印功能

2009-08-26 09:22:44

C#實現(xiàn)打印功能

2009-08-26 11:07:36

C#打印窗體

2009-08-26 11:32:37

C#打印文檔

2009-09-03 14:49:49

C#實現(xiàn)網(wǎng)絡(luò)點對點

2009-08-31 10:38:34

C#變量初始化

2011-05-20 16:07:29

C#

2009-09-27 10:43:13

C#合并多個WORD文

2009-08-31 13:53:03

C#創(chuàng)建一個文件

2009-08-26 14:31:08

C#打印文件

2009-09-02 16:46:12

C# GIS

2009-08-26 12:14:44

C#打印設(shè)置

2009-08-26 14:48:21

C#打印分頁

2009-08-26 13:36:33

C#打印控件

2009-08-26 13:48:31

C#打印條碼

2009-09-01 18:29:10

C#繼承C#多態(tài)
點贊
收藏

51CTO技術(shù)棧公眾號