Silverlight打印解決方案2.1正式發布(支持打印預覽、頁面設置(橫向縱向,頁邊距,紙張大小、字體大小)、自動分頁和多頁連續打印)


此次版本更新,主要是針對用戶的反饋意見進行的。本着盡量多寫Demo,少寫文檔的原則。畢竟文檔千言,不如代碼一行,關鍵是我語言表達能力也不行啊!:)

主要實現以下新功能:

1、不彈出打印對話框(需要提升的權限,只支持Silverlight 5):

Silverlight 5支持使用默認打印機直接打印,而不彈出打印對話框。但是,需要用戶權限提升,如果是OOB瀏覽器外應用的話只需要兩步:

你的應用程序項目屬性,中勾選:

點擊"瀏覽器外設置",勾選:

如果是瀏覽器內運行的程序,需要設置成瀏覽器內受信任的應用程序,參見我的另一篇文章:企業內部使用Silverlight5瀏覽器內受信任的應用程序

調用很簡單:

Report.Print(true); //傳參數true即可

2、設置打印紙張大小和方向(需要提升的權限)

silverlight完全受信任運行時,可以通過平台調用PInvoke做任何事情,當然包括改變打印紙張大小和方向。

3、增加多個回調函數,讓用戶對打印過程有更多控制,有更多自由發揮的空間。

例如:1)實現“本頁小計”功能,可以通過“PrintPageFooterCallBack”回調,在頁腳添加:

甚至可以在表體最后一行添加:

2)通過“PrintReportFooterCallBack”,可以在報表的最后打印圖表等任何東西,並實現自動分頁。

4、從單獨的文件中,或者從字符串中加載報表模板:

有時我們可能需要將報表定義放到單獨的文件中,或者從后台加載報表定義,然后綁定數據源。詳情參見Demo-“動態加載表模板”

5、自定義表體:

通常情況下,我們的表體是二維表格的形式。如果你的表體不是,例如是一條記錄一個表。這可以通過自定義項模板實現,同樣可以實現自動分頁。其實這不是什么新功能,只是Demo中沒有演示。詳情可參見我的另一篇blog:Silverlight打印解決方案2.0之如何自定義表體

6、套打:

其實只要對Silverlight的數據綁定熟悉的話,可以很輕松的實現套打。Demo中有兩個例子,可以參考。

7、手動分頁:

支持手動插入分頁符,是通過報表的ManualPager數組實現的。

8、動態表頭:

如果要實現按月統計訂單的功能,動態設置表頭的數據源還是需要有的!

9、報表組合:

有時我們需要把幾份報表合成一份打印,可以定義多個Report對象,將其組合起來就可以了!

789在一個Demo中演示——“手動分頁/動態設置頁頭/分月份合計/報表組合”

10、動態設置表頭、表體和表尾的數據模板

由於報表控件不能可視化設計,對於不熟悉Xaml的開發人員是個問題。數據模板支持動態設置,我們就可以用VS或Blend設計好模板,然后加載了。 參見Demo-套打(子報表)

11、打印預覽對話框隨着容器窗口的改變而改變。

預覽對話框繼承自ChildWindow,我們會發現當我們改變了容器窗口,例如瀏覽器窗口縮小或放大了,全屏預覽窗口不會隨之改變。此次版本更新解決了這個問題。

Bug修復:

多層表頭在特殊情況下,通常是多於2層時表格線顯示不對的bug。

注意:

1) 程序使用vs 2010 sp1和Silverlight 5 開發。如果不能打開解決方案,可能是沒有安裝Microsoft® Silverlight® 5 Tools for Visual Studio® 2010 SP1。

安裝Microsoft® Silverlight® 5 Tools for Visual Studio® 2010 SP1

2) 如果如果源代碼編譯出錯,可能是沒有安裝Silverlight Toolkit

安裝Silverlight 5 toolkit

獲取全部源代碼

購買以前版本的用戶請注意查收是否收到此次更新的源代碼,您的支持就是我的動力!


兼容歷史版本:

Silverlight打印解決方案2.0

Silverlight打印解決方案1.0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM