繁体   English   中英

从 Jasper Reports 生成的 PDF 中的 SVG 标记

[英]SVG markup in PDF as generated from Jasper Reports

问题陈述

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

我试过的

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

寻找

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

根据他们自己的网站(此处: 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> 

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

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

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

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

JasperSoft 社区答案中提供的 Tomcat SVG 文件运行良好。 我自己的 SVG 文件可以在 MS Edge 或 Chrome 中正确显示,但没有出现在 JSS 中。

当我向 svg 元素添加width, height, viewboxoverflow属性时,它确实出现在 JSS 中 - 所以在尝试你真正想要的 svg 之前先尝试这个例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM