我创建了一个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的示例,但我找不到任何有用的内容。
答案 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是: