danfickle / danfickle/openhtmltopdf
SVG images not supported as background via CSS
- Dominant language
- Java
- Stars
- 2.2k
- Forks
- 423
- PR merge metrics
- No merged PRs in 30d
Description
In our project, we are using `PdfRendererBuilder.withW3cDocument` to convert a HTML document to PDF. In this input, we use CSS to define a background image:
```
.logo {
background-image: url("logo.svg");
}
```
When the PDF is rendered, we get the following stacktrace:
```
Can't read image file; unexpected problem for URI '.../logo.svg'
java.io.IOException: Unrecognized Image format
at com.openhtmltopdf.pdfboxout.PdfBoxImage.(PdfBoxImage.java:44)
at com.openhtmltopdf.pdfboxout.PdfBoxUserAgent.getImageResource(PdfBoxUserAgent.java:90)
at com.openhtmltopdf.render.AbstractOutputDevice.getBackgroundImage(AbstractOutputDevice.java:210)
at com.openhtmltopdf.render.AbstractOutputDevice.paintBackground0(AbstractOutputDevice.java:295)
at com.openhtmltopdf.render.AbstractOutputDevice.paintBackground(AbstractOutputDevice.java:234)
at com.openhtmltopdf.pdfboxout.PdfBoxFastOutputDevice.paintBackground(PdfBoxFastOutputDevice.java:283)
at com.openhtmltopdf.render.Box.paintBackground(Box.java:583)
at com.openhtmltopdf.render.displaylist.DisplayListPainter.paintBackgroundAndBorders(DisplayListPainter.java:75)
at com.openhtmltopdf.render.displaylist.DisplayListPainter.paint(DisplayListPainter.java:251)
at com.openhtmltopdf.pdfboxout.PdfBoxRenderer.paintPageFast(PdfBoxRenderer.java:921)
at com.openhtmltopdf.pdfboxout.PdfBoxRenderer.writePDFFast(PdfBoxRenderer.java:617)
at com.openhtmltopdf.pdfboxout.PdfBoxRenderer.createPdfFast(PdfBoxRenderer.java:554)
at com.openhtmltopdf.pdfboxout.PdfBoxRenderer.createPDF(PdfBoxRenderer.java:480)
at com.openhtmltopdf.pdfboxout.PdfBoxRenderer.createPDF(PdfBoxRenderer.java:417)
at com.openhtmltopdf.pdfboxout.PdfBoxRenderer.createPDF(PdfBoxRenderer.java:399)
at com.openhtmltopdf.pdfboxout.PdfRendererBuilder.run(PdfRendererBuilder.java:46)
[...]
```
When we add the SVG directly to the HTML (with ``), the image is rendered correctly. To make this work, we add the `com.openhtmltopdf.svgsupport.BatikSVGDrawer` in`PdfRendererBuilder.useSVGDrawer`.
The cause seems to be, that the SVG drawer is not used when rendering the background.
Thanks!
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.