我有一个使用 HTML2Canvas 来截取屏幕截图的脚本div
在页面中,然后使用 jsPDF 将其转换为 pdf。
问题是生成的 pdf 只有一页,而屏幕截图在某些情况下需要不止一页。例如,屏幕截图大于 8.5x11。宽度很好,但我需要它来创建多个页面以适应整个屏幕截图。
这是我的脚本:
var pdf = new jsPDF('portrait', 'pt', 'letter');
$('.export').click(function() {
pdf.addHTML($('.profile-expand')[0], function () {
pdf.save('bfc-schedule.pdf');
});
});
有什么想法可以修改它以允许多个页面吗?
如果网页上有 svg 图像,pdf.addHtml 不起作用。
我根据已经在画布中的图片复制了这里的解决方案。
以下是我发现有效的数字(纸张宽度和高度)。它仍然在页面之间产生一点重叠部分,但对我来说已经足够了。如果您可以从 jsPDF 找到官方号码,请使用它们。
var imgData = canvas.toDataURL('image/png');
var imgWidth = 210;
var pageHeight = 295;
var imgHeight = canvas.height * imgWidth / canvas.width;
var heightLeft = imgHeight;
var doc = new jsPDF('p', 'mm');
var position = 0;
doc.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight);
heightLeft -= pageHeight;
while (heightLeft >= 0) {
position = heightLeft - imgHeight;
doc.addPage();
doc.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight);
heightLeft -= pageHeight;
}
doc.save( 'file.pdf');`
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)