Java 如何将HtmlComponent添加到JasperDesign

Java 如何将HtmlComponent添加到JasperDesign,java,jasper-reports,Java,Jasper Reports,我通过各种搜索将HtmlComponent添加到我的项目中 我的下一个问题是,我不知道如何将它添加到JasperDesign中。 我简直找不到任何方法将我的HtmlComponent添加到JasperDesign(甚至不通过组等) 我使用Jasper5.6.1,并设法从iReport工具(5.6.0)中获取HTMLComponentJAR(5.0.1) 我的最终目的是能够在我的报告中有一个HTML表。我知道这在任何方面都是不可能的,但也许,HTML组件将是最有趣的事情。这样,表格的图像就会出现在

我通过各种搜索将
HtmlComponent
添加到我的项目中

我的下一个问题是,我不知道如何将它添加到
JasperDesign
中。 我简直找不到任何方法将我的
HtmlComponent
添加到
JasperDesign
(甚至不通过组等)

我使用Jasper5.6.1,并设法从iReport工具(5.6.0)中获取HTMLComponentJAR(5.0.1)

我的最终目的是能够在我的报告中有一个HTML表。我知道这在任何方面都是不可能的,但也许,HTML组件将是最有趣的事情。这样,表格的图像就会出现在我的报告中,这是可以的

这是我当前的代码


groupHeader.addElement(table)
失败,因为HtmlComponent不是元素,而是组件。

要将组件添加到
JRDesign
中,需要将其包装在

完整示例
//创建设计
JasperDesign=新JasperDesign();
设计。设置WhenNodeType(WhenNodeType枚举。所有章节无详细信息)//我们将在没有数据的情况下运行
design.setName(“Html测试”);
//添加标题栏
JRDesignBand title=新的JRDesignBand();
标题.设置高度(100);
设计。设置标题(标题);
//创建我们的组件
HtmlComponent hc=新的HtmlComponent();
JRDesignExpression=新的JRDesignExpression();
expression.setText(“\'Hello world\”);
hc.setHtmlContentExpression(表达式);
//将其包装在设计组件中
JRDesignComponentElement ce=新的JRDesignComponentElement(设计);
ce.setComponentKey(新的ComponentKey(“http://jasperreports.sourceforge.net/htmlcomponent","hc,"html",;
ce.setComponent(hc);
ce.设置高度(100);
ce.设置宽度(100);
标题.附录(ce);
//编写设计
JasperReport report=jaspecompilemanager.compileReport(设计);
//生成打印(不传递数据源,为空)
JasperPrint print=JasperFillManager.fillReport(report,newhashmap());
//导出为pdf
JRPdfExporter exporter=新的JRPdfExporter();
exporter.setExporterInput(新的SimpleExporterInput(打印));
exporter.setExporterOutput(新的SimpleOutputStreamExporterOutput(“pdf/htmlComponent.pdf”);
SimplePDExporterConfiguration配置=新的SimplePDExporterConfiguration();
exporter.setConfiguration(配置);
出口商。出口报告();
输出


Hello world的大量代码,用jrxml编写报告通常会更快post@AlexK,我无法使用提供的链接,因为我的报告是动态生成的。我不知道有多少表格将在我的报告提前。可能是0,也可能是10,绝对是我想要的。非常感谢你!现在我可以开始摆弄了:)。值得一提的是,您应该缩小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;
}
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();