How to save svg canvas to local filesystem

前端 未结 16 1498
南旧
南旧 2020-11-27 10:10

Is there a way to allow a user, after he has created a vector graph on a javascript svg canvas using a browser, to download this file to their local filesystem?

SVG

16条回答
  •  旧时难觅i
    2020-11-27 10:11

    You can avoid a round trip to the server.

    Base64 encode your SVG xml.

    Then generate a link to that data. The user can right click on to save it locally.

    // This example was created using Protovis & jQuery
    // Base64 provided by http://www.webtoolkit.info/javascript-base64.html
    // Modern web browsers have a builtin function to this as well 'btoa'
    function encode_as_img_and_link(){
     // Add some critical information
     $("svg").attr({ version: '1.1' , xmlns:"http://www.w3.org/2000/svg"});
    
     var svg = $("#chart-canvas").html();
     var b64 = Base64.encode(svg); // or use btoa if supported
    
     // Works in recent Webkit(Chrome)
     $("body").append($("file.svg"));
    
     // Works in Firefox 3.6 and Webit and possibly any browser which supports the data-uri
     $("body").append($("Download"));
    }
    

    The img tag works in Webkit, the link works in Webkit & Firefox, and may work in any browser which supports data-uri

提交回复
热议问题