我要在报告中显示以下图片:
<parameter name="fundo" class="java.lang.String" isForPrompting="false"/>
<image>
<reportElement x="56" y="36" width="102" height="62" uuid="6473c069-834e-40ff-a3ac-52cb2a7b83c8"/>
<imageExpression><![CDATA[net.sf.jasperreports.renderers.ResourceRenderer.getInstance("$P{fundo}", false)]]></imageExpression>
</image>
我应该从Java传递给“ fundo”参数什么?
Map<String, Object> parameters = new HashMap<>(2);
parameters.put("fundo", ??);
该图像是.svg资源。
试过这个:
public static String getFundo() {
URL resource = ImageUtil.class.getClassLoader().getResource("fundo.svg");
if (resource == null) {
return null;
}
return resource.toExternalForm();
}
得到了这个例外:
net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Byte data not found at: ((java.lang.String)parameter_fundo.getValue()).
最佳答案
删除$P{fundo}
周围的引号
如
<imageExpression><![CDATA[net.sf.jasperreports.renderers.ResourceRenderer.getInstance($P{fundo}, false)]]></imageExpression>