- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我通过各种搜索设法将 HtmlComponent
添加到我的项目中。
我的下一个问题是我不知道如何将它添加到 JasperDesign
。我根本找不到任何方法将我的 HtmlComponent
添加到 JasperDesign
(甚至不能通过组等)。
我使用 Jasper 5.6.1 并设法从 iReport 工具 (5.6.0) 中获取 HtmlComponent jar (5.0.1)。
我的最终目的是能够在我的报告中包含一个 HTML 表格。我知道这是不可能的,但也许 HTML 组件是最有趣的事情。这样,表格的图像就会出现在我的报告中,这没问题。
这是我当前的代码
private JasperDesign getTable(String html, JasperDesign jasperDesign) {
HtmlComponent table = new HtmlComponent();
JRDesignExpression expression = new JRDesignExpression();
expression.setText(html.replace("\n", ""));
table.setHtmlContentExpression(expression);
JRDesignGroup group = new JRDesignGroup();
group.setName(TABLE_GROUP_PREFIX);
JRDesignBand groupHeader = new JRDesignBand();
groupHeader.setHeight(200);
groupHeader.setSplitType(SplitTypeEnum.IMMEDIATE);
groupHeader.addElement(table);
((JRDesignSection) group.getGroupHeaderSection()).addBand(groupHeader);
return jasperDesign;
}
groupHeader.addElement(table)
行失败,因为 HtmlComponent 不是元素,而是组件。
最佳答案
要将组件添加到 JRDesign
,您需要将其包装在 JRDesignComponentElement
中
JRDesignComponentElement ce = new JRDesignComponentElement(design);
ce.setComponentKey(new ComponentKey("http://jasperreports.sourceforge.net/htmlcomponent", "hc", "html"));
ce.setComponent(table);
//Create the design
JasperDesign design = new JasperDesign();
design.setWhenNoDataType(WhenNoDataTypeEnum.ALL_SECTIONS_NO_DETAIL); //We will run with no data
design.setName("Html test");
//Add a title band
JRDesignBand title = new JRDesignBand();
title.setHeight(100);
design.setTitle(title);
//Create our component
HtmlComponent hc = new HtmlComponent();
JRDesignExpression expression = new JRDesignExpression();
expression.setText("\"<b>Hello</b> world\"");
hc.setHtmlContentExpression(expression);
//Wrap it in a design componenent
JRDesignComponentElement ce = new JRDesignComponentElement(design);
ce.setComponentKey(new ComponentKey("http://jasperreports.sourceforge.net/htmlcomponent", "hc", "html"));
ce.setComponent(hc);
ce.setHeight(100);
ce.setWidth(100);
title.addElement(ce);
//Compile the design
JasperReport report = JasperCompileManager.compileReport(design);
//Generate the print (passing no datasource, empty)
JasperPrint print = JasperFillManager.fillReport(report, new HashMap<String,Object>());
//Export to pdf
JRPdfExporter exporter = new JRPdfExporter();
exporter.setExporterInput(new SimpleExporterInput(print));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput("pdf/htmlComponent.pdf"));
SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
exporter.setConfiguration(configuration);
exporter.exportReport();
Hello world 的代码很多,用 jrxml 做报告通常更快
关于java - 如何将 HtmlComponent 添加到 JasperDesign,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42560528/
我通过各种搜索设法将 HtmlComponent 添加到我的项目中。 我的下一个问题是我不知道如何将它添加到 JasperDesign。我根本找不到任何方法将我的 HtmlComponent 添加到
我想将 JasperReports 版本从 4.0.1 更新到当前的 5.5.0。 我的报告已生成,因此我使用模板报告。我必须替换 DetailBand,因此我使用 getDetail() 来获取模板
我从这个 post 提出这个问题.我不确定是否应该创建一个新问题,因为我似乎已经在创建一个新主题了?预先为此道歉。 所以这是我的问题: 我正在尝试动态更改报告的格式(读书报告,有多个页面或部分或子报告
我使用了 jasper,但没有使用 xml(我仍然必须更改它),但我有一个 JasperDesign 的实现,我使用...我使用 JRDesignExpression 创建一个 JRDesignTex
我是一名优秀的程序员,十分优秀!