C 中PrintDocument類詳解

2021-10-02 01:54:16 字數 2803 閱讀 5069

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...