我正在尝试使用DynamicJasper生成报告,但是我收到以下错误:
net.sf.jasperreports.engine.util.JRFontNotFoundException:
Font 'Arial' is not available to the JVM.
Run Code Online (Sandbox Code Playgroud)
安装了msttcorefonts,但我猜JVM没有使用它的任何字体.
我正在使用Ubuntu 10.04.
我怎样才能解决这个问题?
在ant中,如何编译.jrxml文件以获取.jasper?
我正在尝试使用Ant脚本和Java编译我的JasperReports模板.我收到此错误:
jasper java.lang.NoClassDefFoundError:
org/codehaus/groovy/control/CompilationFailedException
Run Code Online (Sandbox Code Playgroud)
模板中没有任何复杂的东西,但我仍然无法编译.
到目前为止,我一直受到jasper-reports的限制.
我只能在每个文档中编写一个数据查询.
当我需要编写另一个查询时,我必须创建一个子报表,传递它所需的参数等等.
但我绝对不相信这是做到这一点的好方法.
那么是否有另一种方法可以在单个jasper文档中触发多个数据查询?
我知道之前已经问过这个问题,但是我还没有确定哪个PDF生成框架可用于我当前的项目.
我的要求
很多人似乎都在使用iText,但我对关注点分离有一些担忧(除了更改的许可证):在HTML上下文中有很好的MVC支持,我通常坚持使用Spring MVC和FreeMarker来分离逻辑和布局.我有点担心,使用iText,你最终会混合代码和布局.
我知道,Apache FOP在这里可能是一个解决方案,但是我再次发现XSLT很繁琐,而且我读到FOP在许多文档的大量组合中可能会很慢?
我也考虑过JasperReports,但根据我的理解,这更适合包含表格数据集的报告而不是单个文档,例如需要大量布局格式的发票?
有什么想法吗?
我有这个代码将JasperReprot导出到XLS:
JasperPrint jprint=JasperFillManager.fillReport(expRpg, null, new JRBeanCollectionDataSource(datalist));
JRXlsExporter exporter = new JRXlsExporter();
exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, jprint);
exporter.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, outStream);
exporter.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE);
exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE);
exporter.exportReport();
Run Code Online (Sandbox Code Playgroud)
升级到JasperReports 5.6所有setParameter都被标记为"已弃用",我找不到适应此代码的文档.
如何使用JasperReports 5.6将报告导出到xls ?
我机器上安装的窗口具有区域设置en_AU,这就是JasperReports使用的窗口.我已经尝试更改所有用户的区域设置,包括管理员,但它仍然使用en_AU.
我该如何更改该区域设置?是否可以更改REPORT_LOCALE报告中的参数?
我一直在调查使用JasperReports(6.0.0)和Spring MVC(4.1.3)来生成PDF报告.Spring充斥着"Spring特定"方式与JasperReports集成以生成PDF:
JasperReportsPdfView JasperReportsMultiFormatView JasperReportsViewResolver 我努力在网上找到好的,完整的例子,并想分享我的发现(见下面的答案).
随意添加与"如何将JasperReports与Spring4集成"相关的其他方法和/或改进?
我在我的应用程序中使用jasper报告作为报告工具.我想知道如何通过reportElement动态扩展到垂直方向来包装长文本(扩展行大小,而不是列宽).或者有没有办法实现这一目标?我的方法是截断长文本" 一些很长的名字 ".你能给我一些建议吗?
输出:

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
public class JrUtils {
public static void showJrReport(List objectList, String fileName, String title, Map parameters) {
try {
File f = new File(fileName);
JasperDesign jasperDesign = JRXmlLoader.load(f.getAbsolutePath());
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(objectList);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, ds);
JasperViewer jv = new JasperViewer(jasperPrint, false); …Run Code Online (Sandbox Code Playgroud) 我正在使用JasperReports并填写JRDataSource其他报告.现在,我想将main传递REPORT_DATA_SOURCE给子报表.我怎样才能做到这一点?
据我所知,它REPORT_DATA_SOURCE是一个消耗品,所以它只能使用一次,对吗?我可以复制此数据源并传递它吗?
顺便说一句:我使用iReport来创建布局.
jasper-reports ×10
java ×6
ant ×2
ireport ×2
apache-fop ×1
compilation ×1
datasource ×1
deprecated ×1
export ×1
itext ×1
jvm ×1
locale ×1
report ×1
spring ×1
spring-4 ×1
spring-mvc ×1
subreport ×1
ubuntu-10.04 ×1