我正在使用 0.0.1-RC14 openhtmltopdf 版本从 html 生成 PDF 文件。我的 html 模板上有 svg 图像。这是我的代码片段:
PdfRendererBuilder builder = new PdfRendererBuilder();
builder.defaultTextDirection(BaseRendererBuilder.TextDirection.LTR);
builder.useSVGDrawer(new BatikSVGDrawer()); builder.useMathMLDrawer(new
MathMLDrawer()); builder.addDOMMutator(LaTeXDOMMutator.INSTANCE);
builder.useDefaultPageSize(210, 297, BaseRendererBuilder.PageSizeUnits.MM);
builder.withHtmlContent(html, "");
builder.toStream(os);
builder.run();
我做错了什么或者我错过了什么?
我在将 openhtmltopdf 库升级到最新版本后解决了这个问题:0.0.1-RC15并将命名空间属性添加到
svg
元素:xmlns="http://www.w3.org/2000/svg"
:
<svg xmlns="http://www.w3.org/2000/svg" ...> ... </svg>"
有关详细信息,请参阅 https://github.com/danfickle/openhtmltopdf/wiki/Plugins:-SVG-Images 或 https://github.com/danfickle/openhtmltopdf/issues/258#issuecomment-410269938
我使用 openhtmlpdf-svg-support 1.0.7 版本,我无法在 PDF 中添加 SVG。 我的代码是这样的:
-------------------------------------------------- ------------------------ 最终 PdfRendererBuilder 构建器 = new PdfRendererBuilder(); builder.withHtmlContent(content, null);
builder.useSVGDrawer(new BatikSVGDrawer());
try {
builder.toStream(
new FileOutputStream("C:\\Codebase\\spring\\pdf\\src\\main\\java\\pdfbox\\FinalSVG.pdf"));
builder.run();
} catch (final Exception e) {
e.printStackTrace();
}