2011-05-15 72 views
6

我正在使用Raphael创建动态可视化。是否可以允许在Canvas上生成的图像作为SVG/PDF或其他图像格式下载?下载Raphael canvas作为SVG或PDF

+0

为了响应第一条评论。我针对所有符合标准的浏览器。理想情况下更喜欢免费的解决方案,不需要Flash。服务器端解决方案很好。 – Farhat 2011-05-16 05:06:11

+1

第一个答案为您提供了一个解决方案,您正在问:使用Vector Converter将VML作为SVG(此步骤仅适用于IE6-8)。然后使用wkhtmltopdf将SVG处理为PDF文档。将它作为application/pdf和voilá返回! – Simeon 2011-05-16 13:29:27

回答

9

这里缺少一些信息,即浏览器支持,服务器端/客户端解决方案以及成本是否正常。所以我会尽力给你一个详尽的答案。

对于客户端解决方案,您可以使用DocRaptor。只需将SVG树提供给DocRaptor这适用于SVG生成的浏览器(自2005年以来除了版本9之前的IE之外的所有浏览器)。请注意,DocRaptor将文档转换为PDF需要支付费用。对于将SVG树转换为PDF的免费服务器端解决方案,我建议使用this answer中建议的wkhtmltopdf

对于Raphaël生产VML的IE6-8,您可以使用Vector Converter库创建PHP解决方案。从VML到SVG的转换完成后,将SVG发送到DocRaptor(或wkhtmltopdf)。

没有免费的客户端VML/SVG - > PDF解决方案,适用于VML或SVG。要构建这将意味着解释SVG和/或VML,使用JavaScript创建一个PDF(有JS PDF libraryattempts),并使用some Flash technique发送给客户端。我想没有人试图建立这个。我可能。

+0

详尽答案 – jbeard4 2011-05-15 22:02:54

+0

[jspdf](https://parall.ax/products/jspdf)将通过html或通过自己的库函数库创建PDF。 BTW pdfjs贬值,因为它非常好! – ejectamenta 2015-02-02 22:20:59

5

pdfkit似乎是要走的路,用browserify使节点代码运行客户端。有一个很好的演示here