2010-07-28 68 views
1

我們有一個複雜的Winforms應用程序,每個表單可能包含多個子表單,並且需要能夠打印這些表單中包含的數據。打印複雜Winforms

當前我們正在使用PrintDocument控件。對於我們希望打印的每個表單(或表單元素),我們調用Control.DrawToBitmap()方法,然後在打印時將其繪製到Graphics對象。

這主要是有效的,我們有解決方法打印帶有可滾動內容的表單的全部內容。

但是,我們遇到了2個問題。

1)打印質量非常低,在很多情況下幾乎不可讀;而

2)打印出看起來很不同,這取決於用戶的屏幕分辨率

是否有打印C#的形式什麼好的解決辦法?當然這是以前解決的問題嗎?我喜歡一種不需要我基本上重新實現前端的方法(與Crystal Reports一樣)

回答

2

您可能想要增加正在繪製的位圖/矩形的大小。如果位圖分辨率較低,則在打印的紙張上看起來不太好。如果顯示器每英寸點數超過120像素/點,並且儘管大多數打印機可以以150dpi打印,則顯示器是幸運的,但打印機的默認設置通常爲300/600dpi。我不知道PageUnit測量結果是否對使用PrintDocument的輸出有影響,但在繪製表面時我使用GraphicsUnit.Point。 (當然,不要將位圖太大,否則打印速度會因爲發送給打印機的數據量減少或失敗)。