0

html2pdfmakeを使用して div を pdf に変換しています。私のdivにはテーブルが含まれており、いくつかのsvgチャートも含まれています。しかし、私はsvgをpdfに入れていません。base64を使用して変換しようとしましたが、base64コードをpdfに貼り付けています。

次のようにsvgをbase64に変換しました:

var html = d3.select('#idOfSVG').select("svg").attr("version", 1.1).attr("xmlns", "http://www.w3.org/2000/svg").node().parentNode.innerHTML;
var imgsrc = 'data:image/svg+xml;base64,'+ btoa(html);
var base_image = new Image();
base_image.src = imgsrc;
canvas = document.createElement('canvas');
canvas.id = 'canvas'
document.body.appendChild(canvas);
canvas.width = 500;
canvas.height = 500;
canvas.getContext('2d').drawImage(base_image,0,0);

次に、同じものをコンテンツに追加しました。

また、私が使用したときParseHtml(content,document.getElementById("myPDFDiv"))

私のdivmyPDFDivはDOMから削除されます。

どんな助けでも大歓迎です!!

4

1 に答える 1

2

html2pdfmakeを使用できます。これは、div 内のすべての要素を反復し、pdfmake で使用できるものと同じものを作成JSONます。

SVGlikeの switch ケースを追加することで、SVG サポートを追加できます。

Case 'SVG' : 
 addImage(cnt,e);

function addImage (cnt,e) {
            //Serialize the svg element and then put it in a canvas
//Then update the cnt object
var url = canvas.toDataURL('image/png');
        cnt.push({image: url,
              width: 200,
              height: 250,
              margin: [ 20, 0, 0, 0 ]
        });


}

それが役に立てば幸い !!

于 2016-11-18T11:10:03.480 に答える