前段時間寫了一篇 解決Jasperreport的web打印另一種方法http://m.tkk7.com/three-3/archive/2010/06/24/324329.html 關(guān)于在web中的打印 套打是經(jīng)常被提到的,這個需求很廣泛,中間忙了一些其他的事情,到今天才把在Jasperreport實現(xiàn)web套打的內(nèi)容整理好。
在讀這篇文章之前最好先讀一下上一篇文章,里面有些設(shè)計到jatoolsprinter的內(nèi)容需要了解一下。
下面開始講述一下整個套打的過程
1:首先用ireport制作一張?zhí)状虻膱蟊砣缦聢D
如下模板所示 在一個image組件上放上要打印的內(nèi)容,我這里的演示是從數(shù)據(jù)庫中取到的字段打印出來。
至于ireport模板的制作,我這里不做介紹,因為我自己也沒有接觸多久,會的不一定比你多。
2:創(chuàng)建JSP文件 代碼如下
其中以下內(nèi)容為jatoolsprinter所需代碼
起先在在jasperreprot中輸出格式為html 背景圖一直不顯示,單獨放一張圖片,圖片上不要有其他組件,就會顯示,一直沒搞清楚這個問題是什么原因,但是輸出格式為xhtml的時候圖片就會顯示。
3:修改JRXhtmlExporter代碼
根據(jù)jatoolsprinter的規(guī)范,需要在打印的內(nèi)容的div 命名規(guī)則必須為<div id='page'+數(shù)字>
而Jasperreport是利用<a name="JR_PAGE_ANCHOR_?_?"></a>來區(qū)分頁數(shù)所以我們在代碼中找到輸出JR_PAGE_ANCHOR_?_? 的位置在他之后加上
writer.write("<div id='page"+ (pageIndex + 1)+"'>"n");
exportPage(page);
writer.write("</div>"n");
4:預(yù)覽可見,打印不可見。
這樣打印的頁面jatoolsprinter就可以找到了??墒沁€有個問題,套打一般的問題都是希望那個底圖在預(yù)覽的時候可見而打印的時候不打印,那么這個問題在jatoolsprinter中是這樣處理的。
找到輸出img信息的位置如下圖
在輸出img 的信息中添加 writer.write(" class=\"screen-only\"");現(xiàn)在底圖就不會被打印出來了。
5:啟動tomcat在web下運行
點擊打印預(yù)覽
最后打印效果如下
這篇文章只是對在JsperReport中進行套打進行了介紹。套打當(dāng)中還會設(shè)計到其他的一些問題可以參照早先錄的一個視頻一步一步教你做web套打(http://www.56.com/u11/v_NTA2MjcyMDM.html),這個就和JsperReport沒有任何關(guān)系了。
posted on 2010-07-27 09:24 楊慕 閱讀(15249) 評論(5) 編輯 收藏 所屬分類: J2EE
不錯,但樓主好像沒有說如何讓預(yù)覽時顯示Image組件的圖像,而打印時不打印圖像。 回復(fù) 更多評論
不明白模板文件jasper中的image怎么定義和設(shè)置參數(shù),希望樓主給個模板文件參考一下,謝謝! 回復(fù) 更多評論
jatoolsprinter是收費的,所以還是放棄吧。。。。。。。。。。。 回復(fù) 更多評論
貌似最近又出了一個免費版的,還是不錯的~~贊一個 回復(fù) 更多評論
殺殺菌的卡是打算 回復(fù) 更多評論
Powered by: BlogJava Copyright © 楊慕