是否可以在不进行光栅化的情况下将 fabricjs svg 输出转换为 pdf?

Is it possible to convert fabricjs svg output to pdf without rasterizing?

我们正在构建一个网络应用程序,用户可以在其中使用 fabric.js 进行设计,最后他应该会收到一个包含他的作品的 pdf 文件。

起初,我们尝试使用 JSPDF,因为它更喜欢有客户端解决方案。然而,通过 pdf.addImage(canvas.toDataURL(),...) 我们正在光栅化设计。

第二,我们尝试使用 WKHTMLTOPDF 的服务器端解决方案,发送 canvas.toSVG(),但是字体和形状渲染存在一些问题。

设计很复杂,因为它们可以包含文本、形状、图像和 svg。

我们还尝试了 INKSCAPE (inkscape --without-gui --export-pdf ...)、MPDF 和 MUPDF,但没有很好的效果。 IMAGEMAGICK 不是一个解决方案,它也光栅化设计。

主要目标是获得矢量 pdf,其中可以增加尺寸并且可选择设计元素,如果可能的话,pdf 应该准备好打印(300 dpi 和 cmyk)

将 canvas 导出为 svg 并使用 pdflib 制作 pdf。

你可以在这里找到一个例子:https://www.pdflib.com/pdflib-cookbook/graphics/starter-svg/

是的,可以使用 TCPDF 库。 请检查此 ImageSVG api 以获取有关将 SVG 转换为 PDF 的更多信息。 https://tcpdf.org/examples/example_058/