6

我正在开发交互式 SVG/AJAX 界面,其中元素由用户即时创建和重新定位。我想支持用户将当前视图导出为 PNG 图像和/或 SVG 文档的功能。我真的希望 SVG 文档尽可能简单(没有很多嵌套转换)。是否有任何框架已经支持这一点?

我目前要求我的用户使用 Ctrl+Alt+PrntScrn 技术,我不想要求他们安装任何软件/插件。

服务器端代码现在用 PHP 实现,如果有帮助的话。我已经实现了使用 ImageMagick 从“原始”文档(在客户端进行任何修改之前)生成 PNG 图像的能力。

4

2 回答 2

13

我假设您只需要在支持 SVG 的浏览器中使用它。

Firefox、Safari 和 Opera 提供了非标准XMLSerializerAPI,因此您可以执行以下操作:

var svg = document.getElementById('svg_root'); // or whatever you call it
var serializer = new XMLSerializer();
var str = serializer.serializeToString(svg);

从那里,您可以将其发送到服务器并接收 PNG 作为回报。

这是Mozilla 关于从 DOM 序列化 XML 的开发者页面

于 2008-10-22T22:25:50.477 回答
4

Opera 实现了W3C 的 DOM→XML 序列化器。在 XML 模式下innerHTML,在 Gecko 中返回格式良好的 XML。

HTML5<canvas>可以使用将其内容导出为 PNG 文件toDataURL(),并且可以使用 绘制<img>画布上的任何元素drawImage(),因此应该可以<img src="data:application/svg+xml,…">在画布上创建、绘制它并导出为data:URL。

于 2008-10-26T13:05:49.507 回答