Google Prettify

2008-10-29

如何在WEB中使用jasper產生PDF檔?

目錄架構:
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);

您或許對這些有興趣

最後

謝謝您的閱讀,希望您可以有豐富的收獲。