2010-08-12 77 views
2

我想從我的Silverlight 4應用程序打印報告(只是文本列)。我知道的唯一方法是使用PrintDocument並將PageVisual設置爲顯示報告的框架元素。但是,這會導致一個非常大的打印作業(如120 MB)。這不是我的客戶想要的。還有其他解決方案嗎?從silverlight應用程序打印文本

回答

1

一個簡單的解決方案是直接從瀏覽器打印網頁(我認爲這不是你想要的)。

我認爲PrintDocument和PageVisual是如何從SL內部打印的唯一方法。

我做了一些印刷,即使有大的視覺結構,但我沒有檢查我的打印作業有多大,所以我不能告訴你它是否正常。

無論如何,您可以嘗試不直接打印您想要打印的元素,而是製作其他一些輕量級打印件,這些打印件僅用於打印目的並填充相同的數據並打印該輕量元件。

-1

您可以將文本轉換成圖片,然後打印圖片.. MB這將幫助你

http://www.andybeaulieu.com/Home/tabid/67/EntryID/161/Default.aspx http://www.snowball.be/Printing+In+Silverlight+3+Yes+We+ Can.aspx

+0

其實Silverlight是這樣做,反正。 Silverlight 4只能在600 DPI下打印光柵圖像。 – 2011-03-22 20:37:36

2

Silverlight 4的問題在於,您打印的所有內容都是以600 DPI的光柵化圖像的形式生成的。這解釋了您看到的大量工作量。這也是爲什麼Silverlight的文本與您期望的輸出相比看起來非常模糊的原因。 Silverlight 5將使用Postscript vector-based printing來解決這個問題,但現在您面臨的事實是,如果沒有第三方解決方案,您實際上會受到開箱即用限制或使用HTML的困擾。

如果您願意從服務器端提供的HTML中生成報告,您可能會考慮您正在做的事情,以獲得最佳解決方案。在這種情況下,您至少不必擔心分頁等複雜性,因爲它是Silverlight打印的一部分。

用於報告良好的第三方解決方案,但也許比你所需要的更多的,是使用Reporting Services加上這款產品:http://www.perpetuumsoft.com/Silverlight-Viewer-for-Reporting-Services.aspx?lang=en

+0

謝謝。我想我們會等待Silverlight 5的功能。現在我們已經實現了我們自己的PDF解決方案,將報告保存在桌面上,然後用戶必須自己打開並打印它。 – 2011-03-24 06:31:32

+0

這是一個瀏覽器外的應用程序,或者您是否使用無窗口模式從服務器端解決方案中提取PDF? – 2011-03-24 07:37:42

+0

這是一個OOB應用程序。我們使用PDFSharp在服務器上創建PDF並將該流返回給客戶端。 – 2011-03-25 13:12:31