在PDF中嵌入SVG(使用JS将SVG导出为PDF)

Sim*_*eon 30 javascript pdf svg pdf-generation

起点:我没有可以提供静态文件的服务器.我有一个SVG元素(动态创建)<body>,我想导出为矢量格式,最好是PDF或SVG.

我开始考虑使用已经存在的lib jsPDF以及downloadify.它工作正常.不幸的是,这不支持SVG,只支持文本.

我已经阅读了PDF格式嵌入SVG图像的可能性,它似乎已经启用了Acrobat Reader 5(以及ImageViewer插件).但它不起作用.我试过3种不同的PDF阅读器但没有成功.

这是否意味着PDF已经放弃了SVG嵌入支持?我还没有找到任何相关内容.

我有两个问题; 这可以解决吗?如果是,那么在PDF中嵌入SVG的规范是什么?有了这些信息,我可以自己在jsPDF中构建支持.

浏览器支持需求包括Safari,Chrome和Firefox.支持SVG的版本.

Flo*_*ann 27

对于那些寻找仅限JS的解决方案的人来说:PDFKit似乎是目前从JS生成PDF的优秀解决方案,它支持所有SVG几何图元(包括解释path几何字符串).渲染现有SVG内容所需的只是一个DOM-walker,它可以跟踪CSS样式和继承,如果你不需要像符号等复杂的东西.

我对另一个答案中提到的jsPDF/svgToPdf组合的粗略SVG支持没有成功,这两个的源代码对我来说看起来不是很精心和完整.

  • 结合使用https://github.com/alafr/SVG-to-PDFKit和PDFKit似乎是可行的方法。 (2认同)

Sim*_*eon 8

我会回答我自己的问题.我最终使用了可以从JavaScript调用客户端的DocRaptor.这在技术上解决了我的问题,即使它是一个非免费的解决方案.如果我的回答可能是一个服务器端的解决方案,我可以用wkhtmltopdf作为提议的麦克风.


sta*_*kex 6

jsPDF有一个插件:svgToPdf:

https://github.com/ahwolf/jsPDF/blob/master/jspdf.plugin.svgToPdf.js

我没有尝试过,但这可能允许放弃使用外部API和/或不得不依赖服务器端解决方案.

  • 我目前正在尝试这种方法,但我似乎只从中得到了一个空白的pdf。您知道有使用此插件的示例吗? (2认同)

Mic*_*Mic 5

你尝试过WKHTMLTOPDF吗?这是一个基于webkit的免费工具.
我们在这里写了一个小教程.

在Mac上,使用Safari或Chrome,您可以将带有嵌入式SVG的HTML页面保存为PDF.
由于这些浏览器在内部使用WKHTMLTOPDF,因此这也适用于您.