将 Raphael 画布下载为 SVG 或 PDF

发布于 2024-11-07 12:52:16 字数 70 浏览 5 评论 0原文

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

I am using Raphael to create a dynamic visualization. Is it possible to allow the image generated on the Canvas to be downloaded as a SVG/PDF or another image format?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

森林迷了鹿 2024-11-14 12:52:16

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

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

对于 Raphaël 为其生成 VML 的 IE6-8,您可以使用 矢量转换器 创建 PHP 解决方案图书馆。从 VML 到 SVG 的转换完成后,将 SVG 发送到 DocRaptor(或 wkhtmltopdf)。

没有免费的客户端 VML/SVG ->适用于 VML 或 SVG 的 PDF 解决方案。要构建它意味着解释 SVG 和/或 VML,使用 JavaScript 创建 PDF(有 JS PDF library 尝试),并使用 一些 Flash 技术。我想还没有人尝试过建造它。我可能会。

There are pieces of information missing here, namely browser support, server-/client-side solution and whether costs are okay or not. So I'll try to give you an exhaustive answer.

For a client-side solution, you can use DocRaptor. Just feed the SVG tree to DocRaptor This works for the SVG-producing browsers (all since 2005 except for IE prior to version 9). Note that DocRaptor has a fee for converting documents into PDF. For a free server-side solution for converting an SVG tree to a PDF, I would suggest using wkhtmltopdf as proposed in this answer.

For IE6-8, which Raphaël produces VML for, you could create a PHP solution using the Vector Converter library. When the conversion from VML to SVG is finished, sent the SVG to DocRaptor (or wkhtmltopdf).

There is no free client-side VML/SVG -> PDF solution that works for VML or SVG. To build that would mean interpreting SVG and/or VML, creating a PDF from it using JavaScript (there are JS PDF library attempts), and sending it to the client using some Flash technique. I guess nobody has attempted to build that yet. I might.

筱武穆 2024-11-14 12:52:16

pdfkit 似乎是可行的方法,使用 browserify 使节点代码在客户端运行。 这里有一个很好的演示

pdfkit seems to be the way to go, with using browserify to make the node code run client side. There is a nice demo here

糖果控 2024-11-14 12:52:16

您可以使用 canvgcanvas2image 库保存为图像

You can save as an image using canvg and canvas2image libraries

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文