有没有办法将raphael生成的SVG保存为svg文件。请注意,它只需要在chrome中工作。如何保存由raphael生成的svg
回答
由于stef commented,BlobBuilder API已被弃用。相反,use the Blob API。
大厦Andreas' answer,这里是如何我很快得到它的工作:
svgString = r.toSVG();
a = document.createElement('a');
a.download = 'mySvg.svg';
a.type = 'image/svg+xml';
blob = new Blob([svgString], {"type": "image/svg+xml"});
a.href = (window.URL || webkitURL).createObjectURL(blob);
a.click();
我想出了一个解决方案,使用Raphael.Export,它给了我一个有效的svg/xml字符串(我无法从简单地从DOM对象的innerHTML获取svg)和Blobbuilder创建一个一个链接的URL,我将在最后触发一个点击事件来保存文件。
svgString = @paper.toSVG();
a = document.createElement('a');
a.download = 'mySvg.svg';
a.type = 'image/svg+xml';
bb = new(window.BlobBuilder || WebKitBlobBuilder);
bb.append(svgString);
blob = bb.getBlob('image/svg+xml');
a.href = (window.URL || webkitURL).createObjectURL(blob);
a.click();
可悲看起来像BlobBuilder已经过时。 Blob看起来是替代品,但没有追加方法。 – stef 2013-07-28 12:28:03
Neema的答案有当前的解决方案。 – 2014-07-30 18:34:06
如果你不想使用Rapahel.Export,你可以直接从DOM得到SVG,像:
var svgString = document.getElementById('holder').innerHTML;
a = document.createElement('a');
a.download = 'mySvg.svg';
a.type = 'image/svg+xml';
blob = new Blob([svgString], {"type": "image/svg+xml"});
a.href = (window.URL || webkitURL).createObjectURL(blob);
a.click();
“支架” 是被装载其中div的ID圣拉斐尔:R =圣拉斐尔( “支架”); 注意,我认为它不会在旧的浏览器不处理SVG
对于您保存BLOB的一部分工作,我建议https://github.com/eligrey/FileSaver.js/
或https://www.npmjs.com/package/angular-file-saver如果你使用AngularJs
- 1. 保存为一个由Raphael JS生成的SVG在画布中的问题
- 2. 保存由Pixel Bender生成的ByteArray
- 3. 由TCPDF生成的保存文件
- 4. 保存由less.js生成的.css文件
- 5. raphael svg import size
- 6. 从svg到Raphael
- 7. 动态AngularJs由生成的SVG元素
- 8. 用Raphael创建SVG
- 9. Raphael + svgweb + svg核心
- 10. 如何强制Raphael JS输出为svg
- 11. 如何使用Raphael动态更新svg?
- 12. 如何从Raphael SVG创建独立的SVG?
- 13. 如何将矢量化后由Potrace生成的BufferedImage保存为svg格式的文件?
- 14. 如何使用raphael和raphael自由转换插件的图像?
- 15. 使用Raphael操纵SVG
- 16. svg raphael contextMenu右击T.T sos
- 17. Raphael JS - 动态解析SVG
- 18. 保存生成的冠层
- 19. 如何使用MVC Razor生成SVG
- 20. 如何保存由itextpdf生成的pdf文件而不打开它?
- 21. 如何使用snapsvg,js保存SVG?
- 22. 保存由AJAX脚本生成的文件
- 23. 由JavaScript Canvas API生成的图像在保存时不可见?
- 24. 使用FPDF获取并保存由PHP生成的内容
- 25. 保存由Javascript生成的JSON字符串作为文件:web2py
- 26. 如何显示由JavaScript文件生成的svg作为Angular 2中的组件?
- 27. 用PhantomJS保存SVG
- 28. 在Raphael调整SVG大小的问题
- 29. CakePHP生成并保存PDF
- 30. 如何使用Raphael/svg操作图形的某些部分?
我认为你的意思是保存在客户端?必须有比这更好的方法,但最糟糕的情况是,您可以使用JavaScript/jQuery抓取XML,通过AJAX将其发送到服务器,然后通过适当的头部设置通过常用的Web框架将其提供给用户。 – halfer 2012-04-12 12:09:20
啊,另一种方式:你可以将SVG文件编码为base64字符串,然后将其添加到'data:'链接。用户可以点击它来显示,并在浏览器中使用“保存”。 – halfer 2012-04-12 12:11:21