2012-03-12 361 views
1

我正在使用winforms在c#中開發一個應用程序,我需要打印一些文檔,如合同,攤銷表和其他一些文檔,所有這些文檔都基於預定義的模板。模板的結構並不複雜,只是一些表格,文本格式和兩個列頁面。目標是根據這些模板打印文檔,並動態加載一些數據。首先,我正在考慮使用PDFSharp或iText等PDF庫來實現,但後來我發現還有其他技術,如XPS或XSL-FO可能適合我的需求。打印格式化文檔

你的建議是什麼?任何幫助,將不勝感激。

回答

1

如何做辦公室interop和只使用Word模板?

客戶可能不得不這樣做。我喜歡它的事情是使用書籤很容易將模板中的數據替換爲應用程序中的數據。當一些靜態文本改變時也很方便。您可以更新模板並分發它們,不需要重新編譯。此外,如果客戶希望在Word中進行預覽,然後再進行自動打印。有一些關於使用interop的基本細節,但是使用C#4.0,它確實容易得多,並且總是一個很好的技巧。

如果您的模板位於方便的位置,缺點是可以進入並修改內容並打破報告。如果您擁有大量數據,也可以使用表格,但一次添加單元格的標準記錄方法可能會很慢。創建分隔文本然後執行文本到表格的調用非常快,但是您必須在代碼中執行所有格式。

在XPS方面,我確實看到了一個good overview video on pluralsight.它是WPF課程的一部分,所以我不確定它是如何轉化爲一個winform應用程序。我想你至少可以免費觀看幾個小時,所以如果你想了解XPS打印如何工作,可能值得一試。

+0

如果我的應用程序在服務器 - 客戶端環境中工作,該怎麼辦?格式化將取決於客戶端計算機上的office版本,不是嗎? – 2012-03-12 23:33:43

+0

我想這取決於你的格式有多花哨,但基本表格和兩列格式應該通過Word 97-2003相當一致。如果你知道每個人都有一個合理的葡萄酒的話,你可能會很好去。 – Tod 2012-03-12 23:38:59