私は ie9 または ie10 をサポートする必要があるプロジェクトに参加しています。
データの視覚化に d3.js を使用しています。
ここで、グラフを pdf としてエクスポートする関数を提供する必要があります。
私は可能な解決策を調査してきました。canvas + jsPdf が進むべき道のようです。以下は私が書いたコードです。
しかし問題は、toDataURL が呼び出されると、IE9 と IE10 でセキュリティ エラーが発生することです。jsPdfはbase64画像データしか必要としないので、キャンバスを使用せずにbase64画像データを取得するための回避策があるかどうか疑問に思っていますか???
ルート svg 要素への createObjectURL
svgElement = $('svg').get(0); serializer = new XMLSerializer(); str = serializer.serializeToString(svgElement); DOMURL = window.URL || window.webkitURL || window; url = DOMURL.createObjectURL(new Blob([str], {type: 'image/svg+xml;charset=utf-8'}));
キャンバスを使用して画像を描画する
img = new Image(); img.onload = function(){ ctx.drawImage(img, 0, 0); imgData = $canvas.get(0).toDataURL("image/jpeg"); DOMURL.revokeObjectURL(url); pdf = new jsPDF('landscape', 'pt', 1000, 800); pdf.addImage(imgData, 'JPEG', 0, 0); pdf.save('download.pdf'); }; img.src = url;