C winfrom列印技術初探

2022-07-28 11:27:20 字數 2001 閱讀 1204

最近用到了winform去列印,網上查了一些資料,大概內容:

一 、首先有幾個類 pagesetupdialog 、 printdialog 、printdocument 、printpreviewcontrols,\printpreviewdialog。這幾個類的功能做簡要介紹

pagesetupdialog 這個是列印設定對話方塊。

printdialog 、列印對話方塊。按確定能觸發 printdocument1_printpage事件,或者通過 printdocument1.print()觸發 printdocument1_printpage事件。

printdocument 、列印的具體內容在這個裡面設定是列印資料的物件哦。需要在這個的printpage事件下面寫繪圖的的形狀什麼的用gdi做。

printpreviewdialog:列印預覽對話方塊。

printpreviewcontrols\\這個是列印的乙個預覽控制項我這裡沒有用到,應該是可以實時顯示用的。

二、具體的操作步驟

1、新建winform專案及建立窗體

2、拖取 列印 相關控制項

pagesetupdialog 、 printdialog 、 printdocument 、printpreviewdialog

3、設定上述控制項的document屬性為相應的printdocument

4、設定按鈕等控制項 及 新增相應按鈕事件

5、示意**如下

三、列印**如下

public partial class form3 : form

//列印設定

private void btnsetprint_click(object sender, eventargs e)

//列印預覽

private void btnpreprint_click(object sender, eventargs e)

//列印

private void btnprint_click(object sender, eventargs e)

}//列印內容的設定

private void printdocument1_printpage(object sender, system.drawing.printing.printpageeventargs e)

}四、列印中遇到的問題

1、紙張大小一般是多大的,列印的時候列印內容和紙張怎麼適應?怎麼計算列印的頁數,怎麼計算需要列印多少頁。

a4紙張為210*297

2、邊距怎麼設定。

答:邊距設定,

a.net對於頁邊距是絕對的「大國沙文主義」,只認美制的「英吋」不認別的制式,其預設單位是「0.01英吋」。

而我們的os就比較入鄉隨俗,知道用「公釐」。所以在pagesetupdialog窗體上中顯示的單位是「公釐」(取決於os)。

由於兩邊制式不一樣,搭不上話,.net就會強制的把os的制式單位給轉換成它「習慣」的「英吋」。 也就是說:

在你點選「頁面設定」對話方塊的「確定」按鈕後,.net會自動進行「公釐->英吋」的隱式轉換。

b再度開啟pagesetupdialog對話方塊時,pagesetupdialog物件卻並沒有進行與上面的隱式轉換對應的「英吋->公釐」逆向轉換,

而僅僅是簡單粗暴地將單位名改了,從「display」(0.01英吋)改成了「tenthsofamillimeter」(0.1公釐),數值卻動都沒動一下。

也就是說不管你給pagesetupdialog什麼值,它都認為是以0.1公釐為單位的數。

在printdoc.defaultpagesettings.margins = new system.drawing.printing.margins(100, 100, 50, 50); 中給出了列印邊距設定為預設值是轉化為0.1倍的mm值,然後如果從

3、怎麼列印多頁內容。

if (nprintedheight < nwinheight)

else

4、怎麼用**在頁面的固定位置貼上預定義好的。當和文字重合的時候怎麼把文字顯示到的上面。

6、想要列印**的時候怎麼弄?

初探雲技術

最近幾年 雲計算 很火,今天去圖書館的時候偶然看到了一本國人寫的 雲計算 深刻改變未來 借來稍微看了一下,越 看越帶勁一口氣看了幾十頁,雲計算 在我看來就是所有的計算 儲存操作都在伺服器端實現,伺服器將處理結果返回給用 戶。google和ibm聯手對抗微軟,這下可有好戲看了。恰好書的背面有乙個聯想提...

初探「技術債務」

最近舉行了乙個技術債務研討會,以改進我們對 技術債務 technical debt 的理解及其解決之道,該研討會迸發出一些有趣的觀點。其中乙個觀點引起了包括michael feathers和brian marick在內的很多人的注意,那就是我們應該將對問題的理解集中在 資產 而不是 債務 上。會議組...

WebBrowser實現Web列印初探

二 webbrowder控制項的方法 列印 webbrowser1.execwb 6,1 列印設定 webbrowser1.execwb 8,1 列印預覽 webbrowser1.execwb 7,1 三 實現列印的設定,列印資料的生成,列印的預覽,和列印。實現列印的設定,列印資料的生成,列印的預覽...