jasperReport5.6.0生成PDF(一)
Jasperreport5.6.0生成PDF
最近專案中需要生成報表,先是看了下itext,覺得還可以,但是如果資料欄位多的話,不太靈活。所以後來看了下ireport,覺得還可以,下面簡單說一下它們:
-
jasperreport
JasperReport是一個強大、靈活的報表生成工具,能夠展示豐富的頁面內容,並將之轉換成PDF,HTML,或者XML格式。該庫完全由Java寫成,可以用於在各種Java應用程式,包括J2EE,Web應用程式中生成動態內容。它是開源的,但文件收費。
-
ierport
iReport 是生成所使用的報表格式檔案.jasper,因為JasperReport本身並未提供很好的視覺化報表設計工具,
兩者配合使用:irpeort負責生成編譯後的.jasper格式檔案,生成.jasper格式後再用 jasperreport在程式中生成需要的報表格式,這裡主要說說jasperreport中如何生成pdf.
注意:jasperReport與ireport版本要一致。我這裡的版本是最新的版本5.6.0。
如下例所示:
//ireport生成專案立項PDF格式
public String getIreportPDFAction()
{
Connection conn =null;//連線
try {
String projectapproid =request
//報表生成之後編譯生成的.jasper檔案位置
//1.絕對路徑
File jasperFile=new File("D:/jasper/report1.jasper");
//得到資料URL
String url ="jdbc:oracle:thin:@192.168.1.104:1521:orcl";
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url,"zwjx","zwjx");
//設定引數
Map
parmerters.put("projectapproid", projectapproid);
//生成pdf
byte[] bytes = JasperRunManager.runReportToPdf(jasperFile.getPath(),parmerters,conn);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
//指定位置儲存pdf位置
FileOutputStream outs =new FileOutputStream("D:/jasper/report1.pdf");
outs.write(bytes,0,bytes.length);
outs.flush();
outs.close();
}catch (Exceptione) {
e.printStackTrace();
System.out.println("ireport生成報表出錯!");
}finally
{
try {
conn.close();
}catch(SQLException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
returnnull;
}
執行後我們去D盤下的jasper資料夾中可以看到生成的 pdf.開啟效果如下:
//上面的讀取位置和儲存位置都是根據自己所放位置設定的。