ใช้ jasper reports ออกรายงานเป็นไฟล์ pdf
มีงานต้องออก report โดยใช้ Jasper Reports เป็นตัวช่วย เวลาออกแบบก็ไปใช้ iReport แล้วเราจะได้ไฟล์ .jrxml เสร็จแล้ว จะเอามาเขียนโค้ดเพื่อโหลดไฟล์ และส่ง connection ของ database ให้ jasper Reports ทำการ export รายงานออกมาเป็น pdf
โค้ด java ที่ลอง
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
import net.sf.jasperreports.engine.*; import net.sf.jasperreports.engine.design.JasperDesign; import net.sf.jasperreports.engine.xml.JRXmlLoader; import net.sf.jasperreports.engine.export.*; import java.util.*; import java.sql.*; public class TestJasper { public static void main(String[] args) { JasperReport jasperReport; JasperPrint jasperPrint; JasperDesign jasperDesign; Connection conn = null ; Map parameters = new HashMap(); try { Class.forName( "com.mysql.jdbc.Driver" ); conn = DriverManager.getConnection( "jdbc:mysql://localhost/database?useUnicode=true&characterEncoding=UTF-8&user=root&password=password" ); // โหลดไฟล์ jrxml jasperDesign = JRXmlLoader.load( "/home/iporsut/Sourcecode/report3.jrxml" ); // คอมไพล์ report จะได้ไฟล์ report3.jasper jasperReport = JasperCompileManager.compileReport(jasperDesign); // ส่ง parameters กับ connection ของ database ให้ jasper ทำการ fill report jasperPrint = JasperFillManager.fillReport(jasperReport,parameters,conn); // export report ออกไปเป็นไฟล์ demo.pdf JasperExportManager.exportReportToPdfFile(jasperPrint, "/home/iporsut/demo.pdf" ); } catch (JRException e) { e.printStackTrace(); } catch (ClassNotFoundException ex) {System.err.println(ex.getMessage());} catch (SQLException ex) {System.err.println(ex.getMessage());} finally { if (conn != null ) { try {conn.close();} catch (Exception ignored) {} } } } } |
แท็ก:jasper reports