【发布时间】:2018-10-26 06:25:24
【问题描述】:
我们正在构建一个网络应用程序,用户可以在其中使用 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)
【问题讨论】:
-
试试this
-
@Durga,感谢您的评论。但是,此链接中的解决方案是使用 pdf.addImage() 并且这样做会光栅化工作。
-
在那个 pdf 文档中还是在画布上?
-
@Durga,我认为两者都是。在您的示例中,当您使用 canvas.toDataURL() 时,我们不再具有矢量性质。
标签: pdf svg fabricjs vector-graphics