1. 程式人生 > >jasperReport5.6.0生成PDF(一)

jasperReport5.6.0生成PDF(一)

Jasperreport5.6.0生成PDF

最近專案中需要生成報表,先是看了下itext,覺得還可以,但是如果資料欄位多的話,不太靈活。所以後來看了下ireport,覺得還可以,下面簡單說一下它們:

  1. jasperreport

    JasperReport是一個強大、靈活的報表生成工具,能夠展示豐富的頁面內容,並將之轉換成PDFHTML,或者XML格式。該庫完全由Java寫成,可以用於在各種Java應用程式,包括J2EEWeb應用程式中生成動態內容。它是開源的,但文件收費。

  2. ierport

    iReport 是生成所使用的報表格式檔案.jasper,因為JasperReport本身並未提供很好的視覺化報表設計工具,

    iReport的出現正好彌補了這個缺陷。

兩者配合使用:irpeort負責生成編譯後的.jasper格式檔案,生成.jasper格式後再用 jasperreport在程式中生成需要的報表格式,這裡主要說說jasperreport中如何生成pdf.

注意:jasperReportireport版本要一致。我這裡的版本是最新的版本5.6.0

如下例所示:

//ireport生成專案立項PDF格式

public String getIreportPDFAction()

{

Connection conn =null;//連線

try {

String projectapproid =request

.getParameter("projectapproid");

//報表生成之後編譯生成的.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 = new HashMap();

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.開啟效果如下:

 

//上面的讀取位置和儲存位置都是根據自己所放位置設定的。