D3.jsで描画したチャートをダウンロードできるようにするモジュール。 cssで適用したカラーなども反映されるようになっている。
未完成。
サーバー側でレンタリングする方が楽かも。
ちょっと後悔している。
以下、勘違いして書いているかもしれないので要注意。
a要素のDownload属性が使えないので、ダウンロードされずブラウザ上でファイルが開いてしまう。なんかいい方法があったら教えてください。
image要素のsrcにデータURIスキームとしてsvgを読み込ませるにはbase64にエンコードする必要がある。window.btoaはユニコードに対応していないので、svgに日本語が含まれている場合は別途base64エンコード処理を実装する必要がある。めんどい 頑張ってbase64に変換してimgタグに読みこませても、canvasのdrawImageに渡すとセキュリティエラーがでる。
(今回はcanvgを使って上記問題を回避した。でもあんまり綺麗では無い)
その他、img.onloadの発火がsvgの読み込みが終わる前に発火してたり、そもそも発火しなかったりするので訳がわからないよ。
Built with blockbuilder.org
Modified http://gabelerner.github.io/canvg/canvg.js to a secure url
https://gabelerner.github.io/canvg/canvg.js
https://cdnjs.cloudflare.com/ajax/libs/d3/4.1.1/d3.min.js