91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

云浮市| 东光县| 都匀市| 西乌珠穆沁旗| 祥云县| 台江县| 衡南县| 奉新县| 沁水县| 富民县| 阿荣旗| 通道| 景德镇市| 长治市| 舒城县| 腾冲县| 三都| 凌源市| 衢州市| 孟州市| 柘城县| 琼海市| 防城港市| 禹州市| 镇江市| 高邮市| 泰顺县| 阿巴嘎旗| 红桥区| 安多县| 沾化县| 合肥市| 南木林县| 桃源县| 报价| 米林县| 胶南市| 吉木萨尔县| 新源县| 海安县| 突泉县|