web └report └template.jrxml └template.jasper使用i-Report編寫jrxml檔、並直接用i-Report編譯產生jasper檔。
使用servletContext取得jasper檔之路徑:
String jasperPath =servletContext.getRealPath("/report/template.jasper");
ServletContext的取得依所使用的web framework而有所不同。以JSF來說,servletContext的取得如下:
ServletContext servletContext=(ServletContext)FacesContext.getCurrentInstance(). getExternalContext().getContext();
接下來產生byte[]串流:
JasperFillManager.fillReportToFile(jasperPath, parameter,conn);
byte[] bytes = JasperRunManager.runReportToPdf(jasperPath, parameter, conn);
之所以要產生byte[]是因為它轉成Stream或是File都很方便。JasperRunManager也提供了很多不同型態+報表類型的回傳值。(詳見API..)。
接下來由HttpResponse取得outputStream並寫出
response.getOutputStream().write(bytes);
1 則留言 :
您好,我想請問一下,
如果我產生後的pdf檔,無法順利顯示中文,
會是什麼原因呢?
==============
我在NetBeans中也有加入
itext-2.0.8.jar
iTextAsian.jar
程式中使用的字集為:charset=big5
但在ireport下,我所preview所看見的pdf檔中文是ok的。
只是當我用jsp產生pdf檔後就不行了。
但其他英文字仍是可以顯示出,
請問會是什麼問題呢?
張貼留言