user979899
user979899

Reputation: 153

How to use transparent SVGs in jasper report and export to pdf

I'm trying to export jasper report to pdf using partially opaque SVGs, but in the pdf the opaque are solid white-ish.

The image expression is:

<imageExpression><![CDATA[net.sf.jasperreports.renderers.SimpleRenderToImageAwareDataRenderer.getInstance(byte[] data)]]></imageExpression>

In the background it seems jasper is using Apache BatikRenderer and XML Graphics. Here are even examples of transparency support:

https://xmlgraphics.apache.org/fop/trunk/graphics.html#svg

According to this link, transparency should be supported: https://xmlgraphics.apache.org/fop/dev/svg.html

There is even a pdf-example which works with transparency.

Upvotes: 0

Views: 570

Answers (1)

user979899
user979899

Reputation: 153

After looking at how the SVG in the example defined transparency, I noticed my SVGs differed:

In the example "fill-opacity" is used, while my SVGs used simply "opacity".

By changing opacity to fill-opacity in the SVG, the transparency also worked in the pdf generated by jasper. (Related thread svg opacity vs fill-opacity)

Now I faced 2 options: One solution would be to write a script that modifies the svg xml and replaces opacity with fill-opacity. Another option was to see if the source of the SVGs could be changed so that I would get SVGs using fill-opacity in the first place. The source outputting SVGs in my case was matplotlib, and the next question was how to get matplotlib to output SVG with fill-opacity instead of opacity:

Upvotes: 1

Related Questions