функция doc.save ширина jspdf

Фактически мы генерируем из HTML-файла административные документы для каждого клиента.
С другой стороны, этот сгенерированный PDF-файл будет сохранен в определенной папке на сервере для отправки соответствующему клиенту.

Могу ли я обслуживать резервный путь в порядке 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

Решение

Я думаю, вы хотите отправить PDF в почтовом приложении. Для получения кода на стороне клиента сделайте запрос к серверу в сгенерированном формате PDF base64 (с помощью jsPDF).

var pdfData = pdf.output();

Вы можете снова опубликовать данные PDF (base64) на сервере, там же вы конвертируете строку base64 в PDF, а затем сохраняете ее на любой временный путь, если хотите. Тем самым вы можете отправить его в PDF.

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]