我正在使用AngularJS创建一个项目。在我的项目中,我正在下载包含一些数据和画布的pdf。此pdf在除Internet Explorer之外的所有浏览器上均已完成。在Internet Explorer中获取Your browser has tainted the canvas in Internet Explorer
在我的pdf画布中没有绘图。这是我的代码:
var canvasArr = [];
$("svg").each(function(index) {
arr.push(this)
var parent = this.parentNode;
var thisData = this
var svgLength = $("svg").length;
var id = $(this).attr('id')
SVG2Bitmap(this, function(canvas, dataURL) {
canvas.id = "canvas_" + id;
canvasArr.push(canvas)
parent.replaceChild(canvas, thisData);
var image1, image2, image3,image4,image5 = null;
var p2 = new Promise(function (resolve, reject) {
html2canvas(html, {
onrendered: function(canvas) {
image1 = canvas.toDataURL();
resolve(image1)
}
});
});
Promise.all([p1,p2,p3,p4,p5]).then(function(image){
var docDefinition = {
header: {
margin: 10,
columns: [
]
},
content: [{
image: image[0],
width: 500,
}],
})
pdfMake.createPdf(docDefinition).download('price-calculation-' + $scope.getDateTimeFormat("YYYY-MM-DD-hh:mm:ss") + '.pdf');
})
})
这是用于将SVG转换为画布的库。
答案 0 :(得分:2)
评论中已经提到过,但这似乎主要是Internet Explorer的一个问题。你说你的PDF画布没有画画,但是你在画布上使用 绘制的库是。他们甚至在代码中注释了一些issues around Internet Explorer。
如链接问题中所述,您可能follow the advice处理IE问题的答案。{3}}。这可能实际上并没有帮助,因为它真的是你正在使用的库导致了这个问题。
如果您不是在寻找严格的客户端解决方案,您可能还需要考虑代理PDF的URL以避免IE的问题。