私は次のJavaScriptコードを持っていますhttps://jsfiddle.net/d72sgwrc/5/私の画面のイメージをCanvasに保存してPDFに保存するとします。ファイルがローカルマシンにダウンロードされると、ブラウザ内でPDFファイルを表示できますが、Acrobat PDFビューアでファイルを開く場合、次のエラーが表示されます。「ページの処理中にエラーが発生しました。このドキュメント(110)準備を進め。私のHTMLページが生成された番号の束を持つだけのテーブルです。JSPDF保存されたファイルがローカルでAcrobatに文書[110]エラーが発生しました
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や他のライブラリを含んでおらず、あなたのコードは実行されませんでした。私はあなたのフィドルを更新しましたが、あなたはそれを正しく行うにはあまりにも怠惰なので、私はあまりにもあなたを助けるために怠惰です。がんばろう。 –
@ Iwrestledabearonce。いいえ、私はそれを残念です。私はここにコードをしようとしたが、それは私にエラーを与えていた。だから私はそれをjsfiddleにコピーした。私はこれを編集しようとしました –
@ Iwrestledabearonce。私は再び謝罪する、私はそれを修正した –