打开JSPDF图像画布生成的PDF的错误



我正在使用以下JavaScript进行页面拍摄并将其转换为PDF,但是当它保存文件时...我无法在PDF中打开文件,我会得到以下内容错误"存在错误处理页面。阅读此文档(110)存在问题"

 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(address.innerHTML  + 'test.PDF');
};
html2canvas(source, {
    onrendered: function(canvas){
        canvasToImageSuccess(canvas);
    }
});

请在下面的git链接上按照答案

https://github.com/mrrio/jspdf/issues/862

最新更新