printdocument元件是用於完成列印的類,其常用屬性、方法和事件如下:
字串型別,記錄列印文件時顯示的文件名(例如,在列印狀態對話方塊或印表機佇列中顯示)。
開始文件的列印。
在呼叫print方法後,在列印文件的第一頁之前發生。
需要列印新的一頁時發生。
在文件的最後一頁列印後發生。
列印步驟:
建立printdocument元件的物件。
使用頁面設定對話方塊pagesetupdialog設定頁面列印方式,這些設定作為要列印的所有頁的預設設定。使用列印對話方塊printdialog設定對文件進行列印的印表機的引數。在開啟兩個對話方塊前,首先設定對話方塊的屬性document為指定的printdocument類物件,修改的設定將儲存到printdocument元件物件中。
呼叫printdocument.print方法來實際列印文件。當呼叫該方法後,引發下列事件:beginprint、printpage、endprint。其中每列印一頁都引發printpage事件,列印多頁,要多次引發printpage事件。完成一次列印,可以引發乙個或多個printpage事件。
程式設計師應為這3個事件編寫事件處理函式:
beginprint事件處理函式進行列印初始化,一般設定在列印時所有頁的相同屬性或共用的資源,例如所有頁共同使用的字型、建立要列印的檔案流等。
printpage事件處理函式負責列印一頁資料。
endprint事件處理函式進行列印善後工作。
這些處理函式的第2個引數system.drawing.printing.printeventargs e提供了一些附加資訊,主要有:
e.cancel:布林變數,設定為true,將取消這次列印作業。
e.graphics:所使用的印表機的裝置環境。
e.marginbounds:列印區域的大小,是rectangle結構,元素包括左上角座標:left和top,寬和高:width和height。單位為1/100英吋。
e.marginbounds:列印紙的大小,是rectangle結構。單位為1/100英吋。
e.pagesettings:pagesettings類物件,包含用對話方塊pagesetupdialog設定的頁面列印方式的全部資訊。可用幫助檢視pagesettings類的屬性。
下邊為這3個事件編寫事件處理函式,具體步驟如下:
在最後乙個using語句之後增加語句:
using system.io; using system.drawing.printing;
本例列印或預覽richtextbox中的內容,增加變數:
stringreader streamtoprint=null
。
如果列印或預覽檔案,改為:
streamreader streamtoprint
,
流的概念參見第六章。
增加列印使用的字型的變數:font printfont。
放printdocument控制項到窗體,屬性name為printdocument1。
為printdocument1增加beginprint事件處理函式如下:
private void printdocument1_beginprint(object sender, system.drawing.printing.printeventargs e) //如預覽檔案改為:streamtoprint=new streamreader("檔案的路徑及檔名");
為printdocument1增加endprint事件處理函式如下:
private void printdocument1_endprint (object sender, system.drawing.printing.printeventargs e)
示例**:
//designer檔案
this
.btn_print.click +
=new
system.eventhandler
(this
.btn_print_click)
;this
.printdocument1.printpage +
=new
system.drawing.printing.printpageeventhandler
(this
.printdocument1_printpage)
;
private
void
btn_print_click
(object sender,
eventargs e)
}
private
void
printdocument1_printpage
(object sender,
system.drawing.printing.printpageeventargs e)
}
特別關注:
最初的方法,直接列印影象,很不清晰
換成直接draw
參考c#中printdocument類詳解
c#中printdocument類詳解
PrintDocument控制項(收藏)
printdocument控制項設定列印的文件。printdocument控制項中比較常見的是控制項的printpage事件和print方法。printpage事件在需要為當前頁列印的輸出時發生。呼叫print方法開始文件的列印程序。下面通過例項演示如何使用printdocument控制項。例 建立...
簡單文字列印,PrintDocument使用
using system using system.text using system.drawing using system.drawing.printing using system.windows.forms using system.io namespace textprinter 頁 r...
使用printdocument 實現換行列印
button的單機事件中 new 乙個printdocuent 如果你想顯示預覽 也可以先new 乙個printdialog printdocument document new printdocument document.print 呼叫printdocument的print方法就會就會執行 p...