【发布时间】:2023-03-22 12:36:01
【问题描述】:
我是 jasperforge 的新手 || jasperreports,我希望仅使用 ireport 空模板和无数据库连接生成一个简单的 pdf 报告。
我尝试了一些简单的程序来只导出没有数据的 PDF 并尝试了以下代码:
import java.io.File;
import java.util.HashMap;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperPrintManager;
import net.sf.jasperreports.engine.util.JRLoader;
public class JasperTest {
public void generateReport() throws ClassNotFoundException, InstantiationException, IllegalAccessException, JRException {
System.out.println("Filling report...");
JasperPrint print = JasperFillManager.fillReport(jasper_filename, hm);
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, pdf_filename);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.exportReport();
System.out.println("Created file: " + pdf_filename);
System.out.println("Done!");
}
String jasper_filename = "/blue_template.jasper";
String pdf_filename = "/pdf_out.pdf";
HashMap hm = new HashMap();
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, JRException {
System.out.println("Hello World!");
new JasperTest().generateReport();
}
}
,...但它没有用。我需要将以下库添加到项目中:
- 公共日志记录
- commons-digester
- commons-collections
当我尝试运行可执行文件时,出现以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException
我认为这与 .jasper 文件无关,它在 ireports 中编译时没有错误,但我不知道发生了什么。
【问题讨论】:
-
您是否尝试添加 groovy 库/类?这不是运行时错误,而是在加载使用 groovy 类的类定义时出错。
标签: java pdf jasper-reports