2010-06-07 26 views
3

我需要使用.NET中的GDI +打印DataGridView的內容,簡單文本以行和列顯示。要做到這一點,我需要遍歷行,繪製直線,遍歷列,計算寬度,高度,包裝內容如果內容不適合在一行,等等。這是所有可能的,但是是有一個圖書館簡化了GDI +中的表格繪製,並將一些難題抽象出來了?用於使用GDI繪製表的.NET庫

+0

你是說我假設打印到紙張上? – Codesleuth 2010-06-07 15:24:19

+0

是的。我會在這個問題上加上這個。 – 2010-06-07 15:26:32

+0

此問題可能會有所幫助:http://stackoverflow.com/questions/3009575/wpf-best-method-for-printing-paginated-datagrids – 2010-06-10 01:05:44

回答

2

這是一個非常普遍的要求。簡單的關鍵字,谷歌「打印datagridview」。這是一個decent looking one

+0

謝謝。我會仔細看看的。 – 2010-06-07 16:11:26

+0

不完全是問題的答案(尋找一個圖書館來簡化事情),但鏈接提供了一個有用的例子。 – 2010-06-08 09:19:42

0

我已經實現了這個使用XML和XslCompiledTransform

您需要構建XML(最簡單的方法是使用LINQ2XML),然後讓您的XSLT通過枚舉XML生成的值來構建HTML表。然後,您可以在WebBrowser控件中將其表示,並告訴頁面使用WebBrowser.ShowPrintPreviewDialog進行打印。

使用WebBrowser的優點是爲您提供了所有頁面佈局工具,因此您無需擔心。

粘貼我自己的實現將是巨大的,但請讓我知道,如果你需要任何澄清。

當然,如果你有固定的列數,爲什麼不嘗試represent it on a report

+0

很好的解決方案。我需要在GDI +中執行此操作,因爲它是現有打印輸出的一部分。 – 2010-06-07 15:44:07