Как использовать прозрачные SVG в отчете jasper и экспортировать в pdf - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь экспортировать отчет jasper в pdf, используя частично непрозрачные SVG, но в pdf непрозрачные solid white-i sh.

Выражение изображения:

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

На заднем плане кажется, что яшма использует Apache BatikRenderer и XML Graphics. Вот даже примеры поддержки прозрачности:

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

Согласно этой ссылке, прозрачность должна поддерживаться: https://xmlgraphics.apache.org/fop/dev/svg.html

Существует даже pdf-пример, который работает с прозрачностью.

1 Ответ

1 голос
/ 05 марта 2020

Посмотрев, как SVG в примере определяет прозрачность, я заметил, что мои SVG отличаются:

В примере используется «fill-opacity», в то время как мои SVG использовали просто «opacity».

Изменяя непрозрачность на непрозрачность заполнения в SVG, прозрачность также работала в pdf, сгенерированном jasper. (Связанная тема непрозрачность SVG против непрозрачности заполнения )

Теперь я столкнулся с двумя вариантами: одним из решений было бы написать скрипт, который изменяет SVG xml и заменяет непрозрачность на непрозрачность заполнения , Другой вариант состоял в том, чтобы посмотреть, можно ли изменить источник SVG, чтобы я получал SVG, используя в первую очередь непрозрачность заполнения. Источником вывода SVG в моем случае был matplotlib, и следующий вопрос был о том, как заставить matplotlib выводить SVG с непрозрачностью заполнения вместо непрозрачности:

...