中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#中怎么實現打印功能

發布時間:2021-07-19 15:43:05 來源:億速云 閱讀:255 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關C#中怎么實現打印功能,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

C#實現打印功能具體的操作步驟如下:

創建一個PrintDialog的實例。如下:

System.Windows.Forms.PrintDialog PrintDialog1=new PrintDialog ();

創建一個PrintDocument的實例.如下:

System.Drawing.Printing.PrintDocument docToPrint =    new System.Drawing.Printing.PrintDocument();

設置打印機開始打印的事件處理函數.函數原形如下:

void docToPrint_PrintPage(object sender,    System.Drawing.Printing.PrintPageEventArgs e)

將事件處理函數添加到PrintDocument的PrintPage事件中。

docToPrint.PrintPage+=   new PrintPageEventHandler(docToPrint_PrintPage);

設置PrintDocument的相關屬性,如:

PrintDialog1.AllowSomePages =    true;PrintDialog1.ShowHelp = true;

把PrintDialog的Document屬性設為上面配置好的PrintDocument的實例:

PrintDialog1.Document = docToPrint;

調用PrintDialog的ShowDialog函數顯示打印對話框:

DialogResult result = PrintDialog1.ShowDialog();

根據用戶的選擇,開始打印:

if (result==DialogResult.OK)   {  docToPrint.Print();   }

C#實現打印功能的實例如下:

使用時先創建PrintService類的實例,然后調用void StartPrint(Stream streamToPrint,string streamType)函數開始打印。其中streamToPrint是要打印的內容(字節流),streamType是流的類型(txt表示普通文本,image表示圖像);

using System;  using System.Drawing.Printing;  using System.Windows.Forms;  using System.IO;    namespace EDImageSystem  {   /// <summary>   /// PrintService 的摘要說明。   /// </summary>   public class PrintService   {  public PrintService()  {   //   // TODO: 在此處添加構造函數邏輯   //   this.docToPrint.PrintPage+=  new PrintPageEventHandler(docToPrint_PrintPage);  }//將事件處理函數添加到PrintDocument的PrintPage中    // Declare the PrintDocument object.  private System.Drawing.Printing.PrintDocument docToPrint =    new System.Drawing.Printing.PrintDocument();  //創建一個PrintDocument的實例    private System.IO.Stream streamToPrint;  string streamType;    // This method will set properties on the PrintDialog object and  // then display the dialog.  public void StartPrint(Stream streamToPrint,string streamType)  {     this.streamToPrint=streamToPrint;   this.streamType=streamType;   // Allow the user to choose the page range he or she would   // like to print.   System.Windows.Forms.PrintDialog PrintDialog1=  new PrintDialog ();//實現C#打印之創建一個PrintDialog的實例。   PrintDialog1.AllowSomePages = true;     // Show the help button.   PrintDialog1.ShowHelp = true;     // Set the Document property to the PrintDocument for    // which the PrintPage Event has been handled. To display the   // dialog, either this property or the PrinterSettings property    // must be set    PrintDialog1.Document = docToPrint;  //把PrintDialog的Document屬性設為上面配置好的PrintDocument的實例     DialogResult result = PrintDialog1.ShowDialog();  //調用PrintDialog的ShowDialog函數顯示打印對話框     // If the result is OK then print the document.   if (result==DialogResult.OK)   {  docToPrint.Print();//實現C#打印之開始打印   }    }    // The PrintDialog will print the document  // by handling the document's PrintPage event.  private void docToPrint_PrintPage(object sender,    System.Drawing.Printing.PrintPageEventArgs e)  //設置打印機開始打印的事件處理函數  {     // Insert code to render the page here.   // This code will be called when the control is drawn.     // The following code will render a simple   // message on the printed document   switch(this.streamType)   {  case "txt":   string text = null;   System.Drawing.Font printFont = new System.Drawing.Font  ("Arial", 35, System.Drawing.FontStyle.Regular);     // Draw the content.   System.IO.StreamReader streamReader=  new StreamReader(this.streamToPrint);   text=streamReader.ReadToEnd();   e.Graphics.DrawString(text,printFont,  System.Drawing.Brushes.Black,e.MarginBounds.X,e.MarginBounds.Y);   break;  case "image":   System.Drawing.Image image=  System.Drawing.Image.FromStream(this.streamToPrint);   int x=e.MarginBounds.X;   int y=e.MarginBounds.Y;   int width=image.Width;   int height=image.Height;   if((width/e.MarginBounds.Width)>(  height/e.MarginBounds.Height))   {  width=e.MarginBounds.Width;  height=image.Height*e.MarginBounds.Width/image.Width;   }   else  {  height=e.MarginBounds.Height;  width=image.Width*e.MarginBounds.Height/image.Height;   }   System.Drawing.Rectangle destRect=  new System.Drawing.Rectangle(x,y,width,height);   e.Graphics.DrawImage(image,  destRect,0,0,image.Width,image.Height,  System.Drawing.GraphicsUnit.Pixel);   break;  default:   break;   }     }    }  }

上述就是小編為大家分享的C#中怎么實現打印功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石柱| 长乐市| 樟树市| 建始县| 措勤县| 伊宁县| 当涂县| 庆云县| 山东| 凤庆县| 桃江县| 博罗县| 高淳县| 个旧市| 昆山市| 韶山市| 交口县| 嘉祥县| 普洱| 额尔古纳市| 阿拉尔市| 平陆县| 庐江县| 株洲县| 天柱县| 乌鲁木齐县| 集安市| 余干县| 滁州市| 隆安县| 连城县| 当阳市| 井冈山市| 上蔡县| 新昌县| 香港| 会理县| 民乐县| 绿春县| 通城县| 中宁县|