【发布时间】:2017-05-10 22:57:09
【问题描述】:
我有一个 Java 方法,使用 JasperReport 以 HTML 格式导出报告,如下所示:
public static byte[] exportToHtmlWithConn(String urlReport, Connection conn) throws JRException {
Map<String, Object> parameters = new HashMap<>();
String urlLogo = "/reports/image.PNG";
String urlLogo2 = JasperUtilities.class.getResource(urlLogo).toString();
parameters.put("CONTEXT", urlLogo2);
JasperReport report = JasperCompileManager.compileReport(JasperUtilities.class.getResourceAsStream(urlReport));
jasperPrint = JasperFillManager.fillReport(report, parameters, conn);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
HtmlExporter exporter = new HtmlExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleHtmlExporterOutput(baos));
exporter.exportReport();
return baos.toByteArray();
}
在报告中我有一个这样的参数:
<parameter name="CONTEXT" class="java.lang.String">
<parameterDescription><![CDATA[CONTEXT]]></parameterDescription>
<defaultValueExpression><![CDATA[0]]></defaultValueExpression>
</parameter>
我们的想法是在报告中显示一张图片
<image>
<reportElement x="180" y="-5" width="185" height="80" uuid="d8978cb8-9c4e-4d1b-83fb-a83356803128">
<property name="com.jaspersoft.studio.unit.width" value="pixel"/>
<property name="com.jaspersoft.studio.unit.height" value="pixel"/>
</reportElement>
<imageExpression><![CDATA[$P{CONTEXT}.toString()]]></imageExpression>
</image>
问题是当我使用此方法导出 HTML 时,图像丢失,但是当我使用相同的结构(例如导出 PDF 或 xlsx)时,图像工作正常。
为什么不能在 HTML 中工作?当我检查 html 中的代码时,src 是空的
<img src="" style="width: 185px" alt=""/>
有人可以帮忙解决这个问题吗?我已经看到很多方法可以做到这一点,但这是不可能的。我还使用了 java.io.InputStream 之类的一个参数,并且图像以 PDF 和其他格式工作。但在 HTML 中不起作用。
我也使用过其他图片,但同样的问题。
【问题讨论】:
标签: java jasper-reports