在windows應用程序中文檔的打印是一項非常重要的功能,在以前一直是一個非常復雜的工作,Microsoft .Net Framework的打印功能都以組件的方式提供,為程序員提供了很大的方便,但是這幾個組件的使用還是很復雜的,有必要解釋一下。
打印操作通常包括以下四個功能:
1 打印設置 設置打印機的一些參數,比如更改打印機驅動程序等;
2 頁面設置 設置頁面大小紙張類型等
3 打印預覽 類似於word中的打印預覽
4 打印
實現打印功能的核心是PrintDocument類這個類屬於System.Drawing.Printing名字空間這個類封裝了當前的打印設置頁面設置以及所有的與打印有關的事件和方法
這個類包括以下幾個屬性,事件和方法
1、PrinterSettings 屬性
存放打印機的設置信息,這個屬性不需要程序員設置,因為它是由打印對話框獲取的.
2、PrintCountroller 屬性
控制打印過程
3、DefaultPageSettings 屬性
存放頁面設置信息,打印紙大小方向等,也不需要程序員設置,因為它是由頁面設置對話框獲取的.
4、DocumentName 屬性
指定文檔名稱,出現在打印機狀態窗口中
1。 BeginPrint事件
在打印之前發出
2. PrintPage事件
每打印一頁是發出,事件接受一個PrintPageEventArgs參數該參數封裝了打印相關的信息
PrintPageEventArgs參數有很多重要的屬性
1 Cancel 取消打印
2 Graphics 頁面的繪圖對象
3 HasMorePages 是否還有要打印的頁面
打印的代碼:
/// <summary> /// 打印代碼 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void printDocument1_PrintPage(object sender, PrintPageEventArgs e) { //通過GDI+繪制打印文檔 e.Graphics.DrawString("蝶戀花", new Font("宋體", 15), Brushes.Black, 350, 80); e.Graphics.DrawLine(new Pen(Color.Black, (float)3.00), 100, 185, 720, 185); e.Graphics.DrawString("佇倚危樓風細細,望極春愁,黯黯生天際。", new Font("宋體", 12), Brushes.Black, 110, 195); e.Graphics.DrawString("草色煙光殘照里,無言誰會憑闌意。", new Font("宋體", 12), Brushes.Black, 110, 220); e.Graphics.DrawString("擬把疏狂圖一醉,對酒當歌,強樂還無味。", new Font("宋體", 12), Brushes.Black, 110, 245); e.Graphics.DrawString("衣帶漸寬終不悔。為伊消得人憔悴。", new Font("宋體", 12), Brushes.Black, 110, 270); e.Graphics.DrawLine(new Pen(Color.Black, (float)3.00), 100, 300, 720, 300); }
調用打印代碼:
/// <summary> /// 點擊打印預覽 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { if(MessageBox.Show("是否要預覽打印文檔", "打印預覽", MessageBoxButtons.YesNo) == DialogResult.Yes) { //開啟操作系統的防鋸齒功能 this.printPreviewDialog1.UseAntiAlias = true; //設置要預覽的文檔 this.printPreviewDialog1.Document = this.printDocument1; //打開預覽窗口 printPreviewDialog1.ShowDialog(); } else { //調用Print方法直接打印文檔 this.printDocument1.Print(); } }
安裝Windows的虛擬打印機可以參考:
http://jingyan.baidu.com/article/95c9d20d97d04bec4e7561ba.html
http://jingyan.baidu.com/article/375c8e19bc694525f2a229fa.html
