首页 > 解决方案 > 为什么javascript中的打印功能在edge中不起作用,但在chrome中起作用

问题描述

您好我有下面的代码来实现打印功能。该代码在 Chrome 中运行良好,但在 Edge 中无法运行。在edge中出现以下错误。我正在generatePDF函数中用javascript构建布局。 在此处输入图像描述

下面是我的 JS 代码:

$scope.printRepayment = function() {
    var documentDefinition = generatePDF();                                     pdfMake.createPdf(documentDefinition).print();
      }



var generatePDF = function() {
            var repayments = $scope.repayments;
            var rows = [
              [
                { text: "Payment No", style: "tableHeader" },
                { text: "Installment", style: "tableHeader" },
              ]
            ];
            for (var i = 0; i < repayments.length; i++) {
              rows.push([
                { text: i + 1, style: "tablefirst" },
                {
                  text:
                    "AED " +
                    numberWithCommas(
                      parseFloat(repayments[i].installment).toFixed(2)
                    ),
                  style: "tableOther"
                },
              ]);
            }
            return {
              content: [
                { text: "Repayment schedule", style: "subheader" },
                {
                  style: "tableExample",
                  table: {
                    widths: ["*", "*", "*", "*", "*"],
                    body: rows
                  },
                  layout: {
                    vLineColor: function(i, node) {
                      return "#ECF3FE";
                    }
                  }
                }
              ],
              styles: {
                tabletop: {
                  margin: [10, 0, 0, 10]
                },
                tabletopHeader: {
                  fontSize: 16,
                  bold: true
                }
              }
            };
          };

标签: angularjsprintingmicrosoft-edgepermission-denied

解决方案


参考这篇文章,我们可以看到 pdfMake print() 方法不支持 Edge 浏览器。因此,作为一种解决方法,我认为您可以创建一个包含显示 pdf 内容的网页,然后调用该window.print();方法来打印此页面。否则,如蒲师傅所说,您可以先下载pdf文件,然后打印pdf内容。


推荐阅读