C#打印類PrintDocument、PrintDialog、PrintPreviewDialog使用示例
1.使用PrintDocument進行打印
using System; using System.Drawing; using System.Drawing.Printing; using System.Windows.Forms; namespace PrintTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //實例化打印對象 PrintDocument printDocument1 = new PrintDocument(); //設(shè)置打印用的紙張,當設(shè)置為Custom的時候,可以自定義紙張的大小 printDocument1.DefaultPageSettings.PaperSize = new PaperSize("Custum", 500, 500); //注冊PrintPage事件,打印每一頁時會觸發(fā)該事件 printDocument1.PrintPage += new PrintPageEventHandler(this.PrintDocument_PrintPage); //開始打印 printDocument1.Print(); } private void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { //設(shè)置打印內(nèi)容及其字體,顏色和位置 e.Graphics.DrawString("Hello World!", new Font(new FontFamily("黑體"), 24), System.Drawing.Brushes.Red, 50, 50); } } }
2.使用PrintDialog增加打印對話框
using System; using System.Drawing; using System.Drawing.Printing; using System.Windows.Forms; namespace PrintTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //實例化打印對象 PrintDocument printDocument1 = new PrintDocument(); //設(shè)置打印用的紙張,當設(shè)置為Custom的時候,可以自定義紙張的大小 printDocument1.DefaultPageSettings.PaperSize = new PaperSize("Custum", 500, 500); //注冊PrintPage事件,打印每一頁時會觸發(fā)該事件 printDocument1.PrintPage += new PrintPageEventHandler(this.PrintDocument_PrintPage); //初始化打印對話框?qū)ο? PrintDialog printDialog1 = new PrintDialog(); //將PrintDialog.UseEXDialog屬性設(shè)置為True,才可顯示出打印對話框 printDialog1.UseEXDialog = true; //將printDocument1對象賦值給打印對話框的Document屬性 printDialog1.Document = printDocument1; //打開打印對話框 DialogResult result = printDialog1.ShowDialog(); if (result == DialogResult.OK) printDocument1.Print();//開始打印 } private void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { //設(shè)置打印內(nèi)容及其字體,顏色和位置 e.Graphics.DrawString("Hello World!", new Font(new FontFamily("黑體"), 24), System.Drawing.Brushes.Red, 50, 50); } } }
打印對話框如下圖所示。
3.使用PrintPreviewDialog增加打印預(yù)覽對話框
using System; using System.Drawing; using System.Drawing.Printing; using System.Windows.Forms; namespace PrintTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //實例化打印對象 PrintDocument printDocument1 = new PrintDocument(); //設(shè)置打印用的紙張,當設(shè)置為Custom的時候,可以自定義紙張的大小 printDocument1.DefaultPageSettings.PaperSize = new PaperSize("Custum", 500, 500); //注冊PrintPage事件,打印每一頁時會觸發(fā)該事件 printDocument1.PrintPage += new PrintPageEventHandler(this.PrintDocument_PrintPage); //初始化打印預(yù)覽對話框?qū)ο? PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog(); //將printDocument1對象賦值給打印預(yù)覽對話框的Document屬性 printPreviewDialog1.Document = printDocument1; //打開打印預(yù)覽對話框 DialogResult result = printPreviewDialog1.ShowDialog(); if (result == DialogResult.OK) printDocument1.Print();//開始打印 } private void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { //設(shè)置打印內(nèi)容及其字體,顏色和位置 e.Graphics.DrawString("Hello World!", new Font(new FontFamily("黑體"), 24), System.Drawing.Brushes.Red, 50, 50); } } }
打印時,會顯示下圖所示預(yù)覽畫面。
注意:PrintDialog與PrintPreviewDialog位于名稱空間System.Windows.Forms(程序集為System.Windows.Forms.dll)中,而PrintDocument位于名稱空間System.Drawing.Printing(程序集為System.Drawing.dll)中。
相關(guān)文章
C#數(shù)據(jù)類型轉(zhuǎn)換(顯式轉(zhuǎn)型、隱式轉(zhuǎn)型、強制轉(zhuǎn)型)
本文詳細講解了C#數(shù)據(jù)類型轉(zhuǎn)換(顯式轉(zhuǎn)型、隱式轉(zhuǎn)型、強制轉(zhuǎn)型),文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01Unity中 ShaderGraph 實現(xiàn)超級炫酷的溶解效果入門級教程
這篇文章主要介紹了Unity中的 ShaderGraph 實現(xiàn)超級炫酷的溶解效果入門級教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-07-07C#實現(xiàn)把科學計數(shù)法(E)轉(zhuǎn)化為正常數(shù)字值
這篇文章主要介紹了C#實現(xiàn)把科學計數(shù)法(E)轉(zhuǎn)化為正常數(shù)字值,本文直接給出代碼實例,需要的朋友可以參考下2015-06-06C#使用Fleck實現(xiàn)創(chuàng)建WebSocket服務(wù)器
這篇文章主要為大家詳細介紹了C#如何使用Fleck實現(xiàn)創(chuàng)建WebSocket服務(wù)器,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-01-01