2010-03-18 41 views
2

我正在重新設計一個Windows應用程序以移植到網站。一個令人擔憂的領域是'打印'。以更高的精度從網頁(特別是報告)打印

應用程序是數據密集型的,需要生成複雜的報告。以前的Windows應用程序利用打印機API並將複雜的控制擴展到用戶。它支持分頁功能,避免在紙張的打印部分(如信箋)上打印,佈局和方向的選擇等。請注意,這些設置僅在打印時完成,它們有時是報告定義的一部分。

據我所知,打印網頁時我們不能有這種控制。我正在尋找可供選擇的方法。雖然我更喜歡先看看東西,這將幫助我從原材料的網頁打印,以下是其他的想法:

  1. 由於報告也可以導出爲.xls & .PDF版本,讓用戶直接下載一個和打印。但是,這將我的解決方案限制在具有導出功能的應用程序區域。
  2. 使用Silverlight(4.0)進行報表佈局定義和打印。我認爲Silverlight 4.0(現在在測試版中)提供了對打印機的足夠控制。到目前爲止,我一直在避免使用任何RIA插件。
  3. 精確地生成具有固定尺寸的網頁報告。我不知道這會走多遠。

請分享可以很容易地在我的情況下被應用實踐。

回答

3

對於在網絡上過去的報告,使用.NET,我喜歡生成PDF,Excel和Word或CSV文件。我非常喜歡iTextSharp,它允許創建PDF。

Word可以接受HTML,所以通常很容易引用。對於更多的控制,你可以進入Word interops http://nishantrana.wordpress.com/2007/11/03/creating-word-document-using-c/,但他們讓我感到沮喪。不是爲了實施,但我覺得清理很差。

CSV適用於原始數據轉儲,就是這樣。

對於HTML,您可以使用style sheet targeted to print media得到很好的控制。只有某些你無法控制的東西,比如瀏覽器頁眉和頁腳。

+0

印刷媒體樣式表上的幾個選擇位: http://www.alistapart.com/articles/boom/ http://www.alistapart.com/articles/goingtoprint/ http:// www .alistapart.com/articles/printtopreview/ – 2010-03-18 06:16:36

+0

謝謝。我會先試試看看我能走多遠。 – Kabeer 2010-03-18 06:35:39

0

Flash比普通HTML還具有更好的打印控件,但您可能不知道它,因爲這些功能很少被Flash開發人員使用。現在幾乎每個人都應該安裝Flash,所以它不像Silverlight那樣有人需要安裝插件的好機會(對於beta版本來說是雙倍的)。我不確定Flash打印機API如何與Silverlight的打印機API進行比較,以及它們是否能夠提供您所需的控制級別,但其文檔是公開的,因此您可以查看它。

另外我認爲出口到PDF是一個好主意。我不明白爲什麼你無法將此擴展到涵蓋需要打印報告的所有地方。基本上,不是直接從桌面上運行的Windows應用程序打印,而是在您的服務器上運行相同的確切代碼,然後生成PDF文件,然後他們可以打印自己的文件。

0

我不認爲你會有很多運氣,試圖用不幸的原始HTML做到這一點。對於我們的客戶之一,我們使用「生成PDF」路線,結果非常好。 PDF有另外的好處,你不需要必須打印出來:你可以通過電子郵件發送給老闆/會計師/無論節省一些紙張。

0

如果您想要對打印輸出進行絕對控制,PDF就是要走的路。作爲獎勵,您還可以選擇在應用程序中下載PDF文件。

使用HTML,您處於用戶瀏覽器頁面大小,頁邊距以及如何處理分頁符的設置。