【问题标题】:JSPDF Saved file locally gives document [110] error with AcrobatJSPDF 本地保存的文件在 Acrobat 中出现文档 [110] 错误
【发布时间】:2017-04-17 19:01:55
【问题描述】:

我有以下 JavaScript 代码 https://jsfiddle.net/d72sgwrc/5/ 假设将我的屏幕图像保存为 Canvas 并将其保存为 PDF。在我的本地计算机上下载文件后,我可以在浏览器中查看 PDF 文件,但如果我想在 Acrobat PDF 查看器上打开文件,我会收到以下错误“处理页面时出现错误。出现问题准备好这个文档(110)。我的 HTML 页面只是一个带有一堆生成数字的表格。

JS

function exportPDF() {
var pdf = new jsPDF('l', 'px'),
    source = $('body')[0];
var canvasToImage = function(canvas) {
    var img = new Image();
    var dataURL = canvas.toDataURL('image/png');
    img.src = dataURL;
    return img;
};
var canvasShiftImage = function(oldCanvas, shiftAmt) {
    shiftAmt = parseInt(shiftAmt) || 0;
    if (!shiftAmt) {
        return oldCanvas;
    }

    var newCanvas = document.createElement('canvas');
    newCanvas.height = oldCanvas.height - shiftAmt;
    newCanvas.width = oldCanvas.width;
    var ctx = newCanvas.getContext('2d');

    var img = canvasToImage(oldCanvas);
    ctx.drawImage(img, 0, shiftAmt, img.width, img.height, 0, 0, img.width, img.height);

    return newCanvas;
};


var canvasToImageSuccess = function(canvas) {
    var pdf = new jsPDF('l', 'px'),
        pdfInternals = pdf.internal,
        pdfPageSize = pdfInternals.pageSize,
        pdfScaleFactor = pdfInternals.scaleFactor,
        pdfPageWidth = pdfPageSize.width,
        pdfPageHeight = pdfPageSize.height,
        totalPdfHeight = 0,
        htmlPageHeight = canvas.height,
        htmlScaleFactor = canvas.width / (pdfPageWidth * pdfScaleFactor),
        safetyNet = 0;

    while (totalPdfHeight < htmlPageHeight && safetyNet < 15) {
        var newCanvas = canvasShiftImage(canvas, totalPdfHeight);
        pdf.addImage(newCanvas, 'png', 0, 0, pdfPageWidth, 0, null, 'NONE');

        totalPdfHeight += (pdfPageHeight * pdfScaleFactor * htmlScaleFactor);

        if (totalPdfHeight < htmlPageHeight) {
            pdf.addPage();
        }
        safetyNet++;
    }

    pdf.save('test.PDF');
};
html2canvas(source, {
    onrendered: function(canvas) {
        canvasToImageSuccess(canvas);
    }
});
}

    exportPDF();

HTML 在 JSFiddle 中,因为我无法在此处粘贴,我收到错误 https://jsfiddle.net/d72sgwrc/5/

我正在使用以下 JS 库
https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.debug.js

https://fastcdn.org/FileSaver.js/1.1.20151003/FileSaver.min.js

https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.min.js

https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js

【问题讨论】:

  • 懒惰地将代码复制到小提琴中并粘贴链接并不酷。你离开了最后一个},你没有包含 jQuery 或你正在使用的其他库,并且你的代码没有运行。我更新了你的小提琴,但由于你懒得做对,我懒得帮你。祝你好运。
  • @Iwrestledabearonce。不,我很抱歉。我试图在这里有代码,但它给了我错误。所以我把它复制到了jsfiddle中。我尝试重新编辑此
  • @Iwrestledabearonce。我再次道歉,我已修复它
  • 我现在也遇到了同样的问题,而且在前一周还有效。我也用cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.debug.js
  • @Scalarr 这是我解决它的方法,使用不同版本的脚本

标签: javascript pdf-generation jspdf


【解决方案1】:

我遇到了同样的问题,我添加了函数的所有参数。

// 设置PDF

  1. 让 doc = new jsPDF('p', 'mm', [297, 210]);
  2. doc.addImage(dataURL, "JPEG", marginPDF, 15, widthImgPDF, heigthImgPDF, "fotoX", "SLOW");
  3. doc.save("消防检查 -" + questID + ".pdf");

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。升级到 jsPDF 1.3.4 为我解决了这个问题。

    【讨论】:

      【解决方案3】:

      jspdf debug的版本很重要。

      <script src="https://code.jquery.com/jquery-3.1.1.js"></script>
          <script src="https://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
          <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
          <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.debug.js"></script>
           <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js"></script>
              <script src="https://cdn.rawgit.com/MrRio/jsPDF/master/libs/png_support/png.js"></script>
              <script src="https://cdn.rawgit.comMrRio/jsPDF/master/plugins/addimage.js"></script>
              <script src="https://cdn.rawgit.com/MrRio/jsPDF/master/libs/png_support/zlib.js"></script>
      

      【讨论】:

        猜你喜欢
        • 2014-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多