我要在报告中显示以下图片:

<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>

09-12 09:20