加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PDF帐票工具:JasperReports+iReport

发布时间:2020-12-13 17:49:43 所属栏目:百科 来源:网络整理
导读:在做PDF帐票的时候,我们用的最多的open source工具应该就是JasperReports+iReport了。 iReport is the free,open source report designer for JasperReports. Create very sophisticated layouts containing charts,images,subreports,crosstabs and much m

在做PDF帐票的时候,我们用的最多的open source工具应该就是JasperReports+iReport了。

iReport is the free,open source report designer for JasperReports. Create very sophisticated layouts containing charts,images,subreports,crosstabs and much more. Access your data through JDBC,TableModels,JavaBeans,XML,Hibernate,CSV,and custom sources. Then publish your reports as PDF,RTF,XLS,HTML,XHTML,text,DOCX,or OpenOffice.

JasperReports is the world's most popular open source reporting engine. It is entirely written in Java and it is able to use data coming from any kind of data source and produce pixel-perfect documents that can be viewed,printed or exported in a variety of document formats including HTML,PDF,Excel,OpenOffice and Word.

功能可以说是非常强大。

iReport 用来设计PDF模板,在java中通JasperReports来从DB取得数据并输出PDF帐票。

执行环境根据需要如下配置:

JasperReports Requirements
This table contains all the libraries that JasperReports may require,depending on the functionality required by JasperReports's parent application.

JRE

  • Java Runtime Environment 5.0 or higher

Commons

  • Jakarta Commons BeanUtils Component (version 1.8.0 or later)
    http://jakarta.apache.org/commons/beanutils/
  • Jakarta Commons Collections Component (version 2.1.1 or later)
    http://jakarta.apache.org/commons/collections/
  • Jakarta Commons Javaflow (Sandbox version)
    http://jakarta.apache.org/commons/sandbox/javaflow/
  • Jakarta Commons Logging Component (version 1.0.4 or later)
    http://jakarta.apache.org/commons/logging/

JRXML

  • JAXP 1.1 XML Parser
  • Jakarta Commons Digester Component (version 1.7 or later)
    http://jakarta.apache.org/commons/digester/
  • One of the following for report compilation,depending on the report compiler used:
    • Eclipse JDT Java Compiler (recommended)
      http://www.eclipse.org/jdt/
    • JDK 5.0 or higher
    • Jikes Compiler http://jikes.sourceforge.net
    • Groovy (version 1.5.5 or later) http://groovy.codehaus.org
    • BeanShell (version 2.0 beta 4 or later) http://www.beanshell.org

JDBC

  • JDBC 2.0 Driver

PDF

  • iText - Free Java-PDF library by Bruno Lowagie and Paulo Soares (version 2.1.7 or later) http://www.lowagie.com/iText/

XLS

  • Jakarta POI (version 3.6 or later) http://jakarta.apache.org/poi/
  • JExcelApi (version 2.6.10 or later) http://jexcelapi.sourceforge.net/

Charts

  • JFreeChart (1.0.12 or later) http://www.jfree.org/jfreechart/
  • JCommon (1.0.15 or later) - required by JFreeChart http://www.jfree.org/jcommon/
  • Batik SVG Toolkit (1.7 or later) - required when rendering charts as SVG http://xmlgraphics.apache.org/batik/

java取数据并输出PDF和Excel的代码片段:

 Connection con = null;
        try    {
            // jrxml path
            File jrxmlFile = new File("C:/reporttest/report.jrxml");
            if(jrxmlFile.exists()){
                // Compile jrxml 
                JasperReport jasperReport = JasperCompileManager.compileReport(jrxmlFile.getAbsolutePath());
                // Set parameter
                HashMap<String,Object> params = new HashMap<String,Object>();
                params.put("KEY_ID",10);
                ....
                // Access DB 
                Class.forName("org.postgresql.Driver");
                con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/PDFTestDD","postgres","postgres");
                // Write DB
                JasperPrint print = JasperFillManager.fillReport(jasperReport,params,con);
                // Set file name
                File pdf = new File("c:/report.pdf");
                // Output pdf
                JasperExportManager.exportReportToPdfFile(print,pdf.getAbsolutePath());
 
                // Output XLS
                File xls = new File("c:/reportXls.xls");
                OutputStream output = new FileOutputStream(xls);
                JRXlsExporter exporterXLS = new JRXlsExporter();
                exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT,print);
                exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM,output);
                exporterXLS.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.FALSE);
                exporterXLS.exportReport();
            }else{
                System.out.println("jrxml is not exsit");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(con != null){
                try {
                    con.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读