各位高级开发人员和程序员,您好,
我正在使用一个与 jspdf 集成的脚本, 基本上该脚本应该将我的网站内容转换为 pdf, 该脚本有两种类型的概念。
可选择的和 Canvas , Canvas 适用于复杂的网页,例如表格、空间、背景图像。
它工作成功,但我的 pdf 不清晰,只是停留在中间
这是 JavaScript 代码
//Download as a canvas if contains complex data
$('.wppdf-download-canvas').click(function() {
var pdfname = $(this).attr('name');
var htmlSource = $(this).siblings('.wppdf');
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, 10) || 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 jsPDF2('p','pt'),
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', 15, 15, pdfPageWidth - (pdfPageWidth * .0 ), 0, null, 'NONE');
totalPdfHeight += (pdfPageHeight * pdfScaleFactor * htmlScaleFactor);
safetyNet++;
}
pdf.save(pdfname);
};
我尝试使用此 var pdf = new jsPDF('p','pt','a4'); 更改大小
因为我想要它更大,但是当我尝试下载我的页面时没有任何反应。
任何建议
最佳答案
所以我通过一些在线研究得到了这个
pdf.addImage(newCanvas, 'png', -120, 10, 700, 580);
这解决了问题。
关于javascript - 如何使用 jspdf 增加 pdf 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31872791/