2016-04-08 26 views
0

實際上,我們從每個客戶的HTML文件生成管理文檔。 另一方面,生成的pdf將被保存到服務器上的特定文件夾,以發送給相關客戶。函數doc.save寬度jspdf

我可以通過doc.save命令來備份備份路徑嗎? 我的代碼:

function createpdf() { 
var canvasToImage = function(canvas){ 
    var img = new Image(); 
    var dataURL = canvas.toDataURL('image/png'); 
    img.src = dataURL; 
    return img; 
}; 
var a4 =[595.28,2000]; 
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('p','px','letter'), 
     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('<?php echo $mavariable?>.pdf'); 
}; 

html2canvas($('main')[0], { 
    onrendered: function(canvas){ 
     canvasToImageSuccess(canvas); 
    } 
}); 

}

+0

我不知道我的理解,你能澄清(也許顯示你目前正在使用的代碼)? –

+0

這個問題似乎還不清楚。什麼是問題?你能分享一些代碼嗎? – maggick

回答

0

我猜你要發送的PDF的郵件附件。對於客戶端代碼,請使用生成的PDF(通過jsPDF)base64字符串格式向服務器發送請求。

var pdfData = pdf.output(); 

您可以發佈PDF數據的(Base64)到服務器再有你的base64字符串轉換爲PDF,然後將其保存到任何臨時的路徑,如果你想要的。因此您可以將它郵寄給PDF。

https://stackoverflow.com/a/35684594/2090459