从Jasper Reports

时间:2015-05-18 06:14:43

标签: java pdf svg jasper-reports

问题陈述

我有一个从前端javascript发送到后端动作类的SVG标记。我正在使用Jasper Reports生成包含SVG图像的PDF(我只有标记数据)。我该怎么做。

我尝试了什么

我试图在生成报告时将SVG图像(具有图像文件的链接)嵌入到PDF文件中。

寻找

如何嵌入svg标记,以便我可以在PDF中看到图像。任何其他最好的方法来解决它。

3 个答案:

答案 0 :(得分:0)

根据他们自己的网站(此处:http://community.jaspersoft.com/wiki/how-add-svg-image-your-report-jrxml),您需要使用特殊的HTML元素包含SVG:

<imageExpression class="net.sf.jasperreports.engine.JRRenderable">
    <![CDATA[net.sf.jasperreports.renderers.BatikRenderer.getInstance(new java.io.File("D:\\tomcat.svg"))]]>
</imageExpression> 

答案 1 :(得分:0)

由于问题表明SVG标记文件缺席,您可以坚持David van Driessche的答案,但使用不同的getter:

BatikRenderer.getInstanceFromText($P{svgMarkup})例如,其中svgMarkup是包含SVG标记数据的String类型的参数。

答案 2 :(得分:0)

在更高版本的jasper报告中,您不再需要向imageExpression添加class="net.sf.jasperreports.engine.JRRenderable"

这是JasperReports 6+中的默认设置,如果您在“源”窗格中将其添加,JasperSoftStudio(JSS)将删除它。

JasperSoft社区答案中提供的Tomcat SVG文件效果很好。我自己的SVG文件可以在MS Edge或Chrome中正常显示,但不会在JSS中显示。

当我向svg元素添加width, height, viewboxoverflow属性时,它确实出现在JSS中-因此,请首先尝试示例,然后再尝试实际想要的svg。