使用ireport生成jasperreport報表模板
阿新 • • 發佈:2019-01-31
下載jasperreports-5.5.1-project.zip和iReport-5.5.0-windows-installer.exe即可。
注意:使用ireport新增chart元件時,一定不要新增到Detail區,否則會出現多個重複圖片的問題
3、生成pdf報表程式碼:
4、關於匯出pdf報表不顯示中文的問題package com.csljc.jasper; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.HashMap; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.engine.xml.JRXmlLoader; public class JasperMain { public static final String driver = "com.mysql.jdbc.Driver"; public static final String url = "jdbc:mysql://192.168.53.196:3306/zabbix"; public static final String user = "root"; public static final String password = ""; public static Connection getConnection(){ Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(url,user,password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } /** * @param args */ public static void main(String[] args) { Connection conn = null; try { //載入jasperreport模板檔案 JasperDesign jd = JRXmlLoader.load("report1.jrxml"); //編譯模板檔案為JasperReport物件 JasperReport jr2 = JasperCompileManager.compileReport(jd); //存放需要傳給JasperReport的引數 HashMap<String,Object> parameter = new HashMap<String,Object>(); //獲取資料連線 conn = getConnection(); //將資料和引數填充到JasperReport中 JasperPrint jp = JasperFillManager.fillReport(jr2, parameter, conn); //匯出為pdf檔案 JasperExportManager.exportReportToPdfFile(jp, "D:\\test.pdf"); } catch (JRException e) { e.printStackTrace(); }finally{ if(conn != null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
1)把iTextAsian.jar亞洲語言包放到專案中
2)在用iReport做模板設計,在設計pdf報表模板時注意,把所有涉及到的中文顯示設定如下:
<textElement>
<font size="14" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H"/>
</textElement>
當前版本中pdfFontName屬性已經廢棄,但依舊可以使用,目前還不明白所謂的建議改為font extention如何設定