Angular jsPDF自动表-在'didParseCell'钩子中是否有获取页面计数的函数
如果页数大于1,我想添加总金额 我正在使用Angular jsPDF自动表-在'didParseCell'钩子中是否有获取页面计数的函数,angular,jspdf,jspdf-autotable,Angular,Jspdf,Jspdf Autotable,如果页数大于1,我想添加总金额 我正在使用didParseCell添加表数据中的总量及其工作情况,但我无法获得总页数,因此我可以设置任何条件 我还添加了插件git的注释。() 我在自动表格的didParseCell中尝试了doc.internal.getNumberOfPages()、data.table.pageNumber和data.table.pageCount 所有人都给出了页数1 代码 立即调用didParseCell,这意味着您将始终从getNumberOfPages获得1。最简单的
didParseCell
添加表数据中的总量及其工作情况,但我无法获得总页数,因此我可以设置任何条件
我还添加了插件git的注释。()
我在自动表格的didParseCell
中尝试了doc.internal.getNumberOfPages()
、data.table.pageNumber
和data.table.pageCount
所有人都给出了页数1
代码
立即调用
didParseCell
,这意味着您将始终从getNumberOfPages获得1。最简单的方法是在didParseCell
中添加行,然后修改willDrawCell
中的内容。如果您只使用jspdf,您能否进一步解决问题并检查从doc.internal.getNumber()获得的值是否正确?例如:let doc=new jsPDF();doc.addPage();console.log(doc.internal.getNumberOfPages())
感谢您的回复。我已经更新了我的问题。我在jsPDF中使用类似的数据。你能删除代码中的自动可编辑部分,看看你是否也遇到同样的问题吗?(正如我在之前的评论中所建议的)嘿@SimonBengtsson,我已经尝试了你的例子,并且给出了第2页。因为我必须使用自动表,所以我如何在代码中使用此选项。我有对象数组形式的数据。哦,我现在明白这个问题了。我没有看到你的评论,因为有太多的代码。我会尝试回答的。谢谢你,成功了。你是唯一一个我能快速得到回复的作者。你真是太棒了
let doc = new jsPDF({
orientation: 'landscape',
unit: 'pt'
});
let totalAmountRow = {column1:'Total Amount',column2:'INR',column2:'40'}
doc.autoTable(headers, data, {
startY:yPoint += 20,
margin: {top: 100},
theme: "grid",
didParseCell: function (data) {
console.log("Data getNumberOfPages",doc.internal.getNumberOfPages()) // Wrong page count here
console.log("Data Table PageCount",data.table.pageCount)
console.log("data Table PageNumber",data.table.pageNumber)
if(totalAmountRow != ''){
data.table.settings.body.push(totalAmountRow);
totalAmountRow = '';
}
},
didDrawCell: function (data) {
doc.setFillColor(255, 255, 255);
},
columnStyles: {
amount: {cellWidth: 60},
"Demo Text": {cellWidth: 50}
},
didDrawPage: function (data) {
let footerStr;
let pageCount = doc.internal.getNumberOfPages(); // Here I am getting correct page count
if (typeof doc.putTotalPages === 'function') {
footerStr = pageCount + " / " + totalPagesExp;
}
if(pageCount != 0) {
doc.addImage('imgURL', 'JPEG', 35, 30);
doc.setFontSize(14);
doc.text('Title', 35, 80);
yPoint = 300;
}
doc.setFontSize(10);
doc.text(footerStr, 400, 590);
}
});
if (typeof doc.putTotalPages === 'function') {
doc.putTotalPages(totalPagesExp);
}
doc.save("pdfName.pdf");