能否将fabricjs生成的SVG输出转换为PDF而不进行光栅化处理?

3
我们正在开发一个Web应用程序,用户可以使用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)。

尝试使用 这个 - Durga
@Durga,感谢您的评论。然而,此链接中的解决方案正在使用pdf.addImage(),这样做会使工作变成光栅化。 - Ricardo Carvalho
在那个PDF文档里还是画布上? - Durga
@Durga,我认为在这两种情况下都是如此。在您的示例中,当您使用canvas.toDataURL()时,从此时起我们不再具有矢量性质。 - Ricardo Carvalho
2个回答

0

0

谢谢你的回答。然而,我已经开始尝试使用TCPDF,并且正在全力以赴。目前重新启动一切以测试您建议使用pdflib的方法将非常复杂。将来,我会更新我的最终结果(如果一切顺利,将使用TCPDF;如果第一个失败,则使用pdflib)。再次感谢您。 - Ricardo Carvalho
不确定tcpdf有哪些功能,但我认为pdflib更好。它支持甚至是icc颜色和cmyk。如果您将来考虑使用pdflib,这里是一个链接到食谱:http://www.pdflib.com/fileadmin/pdflib/pdf/manuals/PDFlib-9.1.1-tutorial.pdf。在第211页,您可以找到pdflib不支持的SVG功能。 - Marius Turcu
@RicardoCarvalho 你在使用tcpdf的平铺图案吗? - Daniel
@Daniel,我不确定你所说的“平铺模式”是什么意思,但我已经进行了一些类似这样的测试: - Ricardo Carvalho
正如您所看到的,canvas.toSVG()运行良好,但是当我将其发送到服务器TCPDF时,它不会呈现圆形并输出完整图像。 - Ricardo Carvalho
@Daniel,另请参阅https://sourceforge.net/p/tcpdf/feature-requests/257/和Nicola Asuni(TCPDF创建者)的评论,他说TCPDF尚不支持SVG与图案。 - Ricardo Carvalho

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接