У меня есть следующий код JavaScript https://jsfiddle.net/d72sgwrc/5/ Что, предположим, чтобы сохранить изображение моего экрана, превратите его в Canvas и сохраните в PDF. Как только файл загружается на моем локальном компьютере, я могу просмотреть файл PDF в браузере, но если я хочу открыть файл в программе просмотра Acrobat PDF, я получаю следующую ошибку: «Была и ошибка Обработка страницы. готовя этот документ (110). мой HTML страница просто таблица с кучей сгенерированного числа.JSPDF Сохраненный файл локально дает ошибку документа [110] с Acrobat
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 или другую библиотеку, которую вы использовали, и ваш код не запускался. Я обновил вашу скрипку, но, поскольку вы слишком ленились, чтобы сделать все правильно, я слишком ленив, чтобы помочь вам. удачи. –
@ Подводная лодка. нет, я сожалею об этом. Я попытался получить код здесь, но это дало мне ошибку. Поэтому я скопировал его в jsfiddle. Я пытаюсь изменить это значение –
@Iwrestledabearonce. Я снова прошу прощения, я исправил его –