您的浏览器已在Internet Explorer

时间:2018-02-23 11:17:22

标签: javascript internet-explorer svg

我正在使用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转换为画布的库。

https://github.com/Kaiido/SVG2Bitmap

1 个答案:

答案 0 :(得分:2)

评论中已经提到过,但这似乎主要是Internet Explorer的一个问题。你你的PDF画布没有画画,但是你在画布上使用 绘制的库是。他们甚至在代码中注释了一些issues around Internet Explorer

如链接问题中所述,您可能follow the advice处理IE问题的答案。{3}}。这可能实际上并没有帮助,因为它真的是你正在使用的库导致了这个问题。

如果您不是在寻找严格的客户端解决方案,您可能还需要考虑代理PDF的URL以避免IE的问题。