javascript - 如何在 pdfmake 和 html2pdfmake 中处理 SVG 和 canvas

标签 javascript svg html5-canvas pdfmake

我正在使用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"))

我的 div myPDFDiv 从 DOM 中删除。

任何帮助将不胜感激!!

最佳答案

您可以使用html2pdfmake,它会迭代div中的所有元素并生成JSON,您可以将其与pdfmake一起使用。

您可以通过添加 SVG 的 switch case 来添加 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 ]
        });


}

希望对你有帮助!!

关于javascript - 如何在 pdfmake 和 html2pdfmake 中处理 SVG 和 canvas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39243149/

相关文章:

javascript - 如何在javascript中获取没有ID的元素的文本内容

java - 防止 HtmlUnit 2.13 执行 JavaScript

java - GEF 中的 SVG 图像

python - 使用 Python 将图像嵌入到 SVG 文件中,例如 Inkscape 扩展

javascript - 从 HTML5 Canvas 中清除圆形区域

css - 将 flash 转换为 html5 后对齐内容时出现问题

javascript - Next.js - Head 元素不起作用

javascript - 单击时显示一个带有好友列表中好友用户名的 div

javascript - getBBox() 对比 getBoundingClientRect() 对比 getClientRects()

javascript - 一键更改绘图ID