2016-04-08 17 views
0

Aslında her bir müşteri için bir HTML dosyası yönetim belgelerinden üretiyoruz. Diğer taraftan, oluşturulan bu pdf, ilgili müşteriye gönderilecek sunucudaki belirli bir klasöre kaydedilecektir.işlev doc.save width jspdf

Yedekleme yolunu doc.save siparişi ile sunabilir miyim? Kodum:

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

Sana açıklamak (ve belki de kullanmakta olduğunuz kod göster), ben anlayamadım? –

+0

Sorun açık değil gibi görünüyor. Sorun nedir? Bazı kodları paylaşır mısınız? – maggick

cevap

0

Sana posta ekinde PDF göndermek istediğiniz sanırım. İstemci tarafı kodundan, oluşturulan PDF'ler (jsPDF) base64 string formatıyla sunucuya bir istekte bulunun. Orada sunucuya PDF veri (base64) gönderebilir

var pdfData = pdf.output(); 

tekrar istediğiniz varsa geçici yoluna üzere kaydedin PDF base64 dize dönüştürmek var. Böylece PDF'ye postalayabilirsiniz.

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

İlgili konular