运行Jasper报告并从Java Swing应用程序导出为pdf

时间:2013-12-17 12:29:36

标签: java xml swing jasper-reports

我创建了一个Java Swing应用程序,它使用来自mysql数据库的数据生成一个xml文件。

使用它我已成功使用NetBeans的(jrxml)插件与我的Swing应用程序分别创建了一个Jasper Jasper 5.5.0报告。

为此,我使用准备好的xml文件作为数据源。所以我有一个带有xml数据源和一个子报告的Jasper报告。如何从我的Swing应用程序运行该.jasper报告并导出为pdf文件?作为我的Swing应用程序的最后一个消息框,我得到:

<em>"XML file is successfully generated"</em>

我想在该消息框上创建一个带有选项的按钮:

<em>"Print xml to pdf file"</em> 

我在哪里可以运行我的Jasper报告并以PDF格式导出?

我搜索了使用Google的示例,但我找不到任何有用的内容。

1 个答案:

答案 0 :(得分:1)

我找到了解决方案:

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.JasperReportsContext;
import net.sf.jasperreports.engine.data.JRXmlDataSource;
public static void main(String[] args) {
 try {
     HashMap hm = new HashMap < > ();
      String filePath = System.getProperty("user.dir") + "\\somexmldatasource.xml";
      InputStream inputStream = new FileInputStream(new File(filePath));
      JRXmlDataSource ds = new JRXmlDataSource(inputStream, "/some/xpath/query");
      JasperReport jasperReport;
      JasperPrint jasperPrint;
      jasperReport = JasperCompileManager.compileReport(System.getProperty("user.dir") + "\\yourreport.jrxml");
      jasperPrint = JasperFillManager.fillReport(jasperReport, hm, ds);
      JasperExportManager.exportReportToPdfFile(jasperPrint, "someoutputpath\\simple_report.pdf");
 } catch (Exception e) {
      e.printStackTrace();
 }

}

要在java中使用Jasper,您必须包含以下几个JAR:

c:\Program Files (x86)\Jaspersoft\iReport-5.5.0\ireport\modules\ext\

(或iReport app的其他路径)

要包括的JAR是:

  • 公地集合-3.2.1.jar
  • 公地消化器-2.1.jar
  • 共享记录-1.1.jar
  • 的JasperReports-5.5.0.jar
  • XML-apis.jar
  • 公地BeanUtils的-1.8.2.jar
  • servlet的API-2.4.jar
  • 的iText-2.1.7.js2.jar