Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何填写简单的JasperReports报表并将其导出为PDF文件_Java_Jasper Reports - Fatal编程技术网

Java 如何填写简单的JasperReports报表并将其导出为PDF文件

Java 如何填写简单的JasperReports报表并将其导出为PDF文件,java,jasper-reports,Java,Jasper Reports,我是JasperReports的新手 我试图用一个惟一的参数填充一个简单的JasperReport,然后将其导出为PDF文件。但是PDF文件导出为空 我使用Jaspersoft Studio设计报告。我得到了以下“invoice.jrxml”文件: (我在Jasper Studio预览选项卡中进行了测试,结果很好。) 报告已经编辑好了,我得到了一个“invoice.jasper”文件。我把这个文件放在Java项目的类路径中 以下是我尝试填写报告并将其导出的代码: public static

我是JasperReports的新手

我试图用一个惟一的参数填充一个简单的JasperReport,然后将其导出为PDF文件。但是PDF文件导出为空

我使用Jaspersoft Studio设计报告。我得到了以下“invoice.jrxml”文件:


(我在Jasper Studio预览选项卡中进行了测试,结果很好。)

报告已经编辑好了,我得到了一个“invoice.jasper”文件。我把这个文件放在Java项目的类路径中

以下是我尝试填写报告并将其导出的代码:

public static void main(String[] args) throws JRException {
    JasperReport reporte = (JasperReport) JRLoader.loadObject(new File("invoice.jasper"));

    Map<String, Object> parametros = new HashMap<String, Object>();
    parametros.put("name", "Adrián");

    JasperPrint jasperPrint = JasperFillManager.fillReport(reporte, parametros);

    JasperExportManager.exportReportToPdfFile(jasperPrint, "invoice.pdf");
}
publicstaticvoidmain(字符串[]args)引发异常{
JasperReport report=(JasperReport)JRLoader.loadObject(新文件(“invoice.jasper”);
Map parametros=newhashmap();
parametros.put(“name”,“Adrián”);
JasperPrint JasperPrint=JasperFillManager.fillReport(report,parametros);
JasperExportManager.exportReportToPdfFile(jasperPrint,“invoice.pdf”);
}

我不明白为什么报告是空白的。

阿德里安,试试下面的方法:

    ClassLoader classloader = Thread.currentThread().getContextClassLoader();
    InputStream inputStream = classloader.getResourceAsStream(fileName);
    JasperReport jasperReport = JasperCompileManager.compileReport(inputStream);
    Map<String, Object> parametros = new HashMap<String, Object>();
    parametros.put("name", "Adrián");
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parametros);
    JasperExportManager.exportReportToPdfFile(jasperPrint, "invoice.pdf");
ClassLoader ClassLoader=Thread.currentThread().getContextClassLoader();
InputStream InputStream=classloader.getResourceAsStream(文件名);
JasperReport-JasperReport=JasperCompileManager.compileReport(inputStream);
Map parametros=newhashmap();
parametros.put(“name”,“Adrián”);
JasperPrint JasperPrint=JasperFillManager.fillReport(jasperReport,parametros);
JasperExportManager.exportReportToPdfFile(jasperPrint,“invoice.pdf”);

此代码接收一个
文件名
,此文件名应该是您的.jrxml文件。代码将接收报告的源代码,并在运行时编译。

运行时不编译.jrxml文件:线程“main”net.sf.jasperreports.engine.JRException中的异常:java.net.malformedurexception在Jaspersoft Studio中编译jrxml文件!它可以在您的运行时编译…我从我在其他项目中编写的代码中获取:)检查您是如何形成路径的我发现了问题。现在,我用“JasperPrint JasperPrint=JasperFillManager.fillReport(reporte,parametros,new jreporthydatasource());”填充报告。(我向fillReport()方法添加了最后一个参数。)
我无法理解为什么报告为空。
-您没有传递数据源
    ClassLoader classloader = Thread.currentThread().getContextClassLoader();
    InputStream inputStream = classloader.getResourceAsStream(fileName);
    JasperReport jasperReport = JasperCompileManager.compileReport(inputStream);
    Map<String, Object> parametros = new HashMap<String, Object>();
    parametros.put("name", "Adrián");
    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parametros);
    JasperExportManager.exportReportToPdfFile(jasperPrint, "invoice.pdf");