Javascript Html2Canvas提供半填充的单页,而不是完整的内容
我有这个任务,我使用angular、jspdf、html2canvas、canvas2image来显示一个模式,用户可以在其中选择希望导出为PDF的项目。在相同的模式中,当用户选择一个项目时,首先隐藏下面的所有内容,我将该特定div置于可见状态;呈现为用户的预览 莫代尔的Css是:Javascript Html2Canvas提供半填充的单页,而不是完整的内容,javascript,angularjs,jspdf,html2canvas,Javascript,Angularjs,Jspdf,Html2canvas,我有这个任务,我使用angular、jspdf、html2canvas、canvas2image来显示一个模式,用户可以在其中选择希望导出为PDF的项目。在相同的模式中,当用户选择一个项目时,首先隐藏下面的所有内容,我将该特定div置于可见状态;呈现为用户的预览 莫代尔的Css是: .pdf-modal-spec{ overflow-x:hidden; overflow-y:auto; max-height:900px; } 模式可以滚动,当用户不断选择项目时,要
.pdf-modal-spec{
overflow-x:hidden;
overflow-y:auto;
max-height:900px;
}
模式可以滚动,当用户不断选择项目时,要导出为pdf的分区高度将从900px开始增加。当我将完全呈现的页面导出为pdf时,我从模式呈现的内容中只得到半填充的单页面;它应该跨越到2-3页,虽然我得到2-3页,但空白。我不知道我错在哪里
我的导出为pdf程序:
vm.a4 = [595.28, 841.89];
var form = $(".pdfTemplates");
$('.pdfTemplates').scrollTop(form[0].scrollHeight);
createPDF(form);
function getCanvas(form) {
form.width((vm.a4[0] * 1.33333) - 50).css('max-width', 'none');
return html2canvas(form, {
imageTimeout: 2000,
background: '#FFFFFF',
removeContainer: true
});
}
function createPDF(form) {
var cache_width = form.width();
//create pdf
getCanvas(form).then(function (canvas) {
var img = canvas.toDataURL("image/png");
var doc = new jsPDF({
unit: 'pt',
format: 'a4',
});
// pageHeight= doc.internal.pageSize.height;
var image = new Image();
image = Canvas2Image.convertToPNG(canvas);
doc.addImage(img, 'PNG', 15, 15);
var corte = (vm.a4[1] * 1.33333) - 30;
var croppingYPosition = corte;
var count = (image.height) / corte;
for (var i = 1; i < count; i++) {
doc.addPage();
var sourceX = 0;
var sourceY = croppingYPosition;
var sourceWidth = image.width;
var sourceHeight = corte;
var destWidth = sourceWidth;
var destHeight = sourceHeight;
var destX = 0;
var destY = 0;
var canvas1 = canvas;
canvas1.setAttribute('height', corte * i);
canvas1.setAttribute('width', destWidth);
var ctx = canvas1.getContext("2d");
ctx.drawImage(image, sourceX,
sourceY,
sourceWidth,
sourceHeight,
destX,
destY,
destWidth,
destHeight);
var image2 = new Image();
image2 = Canvas2Image.convertToPNG(canvas1);
var image2Data = image2.src;
doc.addImage(image2Data, 'PNG', 15, 15);
croppingYPosition += destHeight;
}
doc.save('firstPDF.pdf');
document.getElementsByClassName('pdfTemplates')[0].style.width = '100%';
});
}
更准确地说,我想将溢出转换为PDF。即使我将div的overflow设置为visible或auto-html2canvas,也只将div的可见部分导出为PDF,而不导出其余部分。我做了一些研发工作,但我找不到任何能满足我期望的东西。请帮忙…你解决过这个问题吗?我处理的是同样的事情,要打印的pdf中的内容只显示表的一半。