我在使用Autotable时遇到了问题。我的表格包含thead、tbody和tfoot。我的tfoot用于显示每一列的总值。我成功地生成了PDF文件,但tfoot或总页脚在每一页上都会打印出来。我检查了文档并使用showFoot: 'lastPage'
,但没有帮助。我不知道为什么设置这个属性没有产生任何效果。
以下是我的代码:
$(document).on("click", "#btnExportToPDF", function (e) {
e.preventDefault();
var date = "as of "+(new Date()).toString().split(' ').splice(1,3).join(' ');
$("#loading").show();
var title = '12 Years Forecast';
// === Calculate text width ====
var text_width = $.fn.textWidth(title,'14px');
var half_width = (text_width/2); //times pt unit
var doc = new jsPDF('l', 'pt');
var totalPagesExp = '{total_pages_count_string}'
var base64Img = 'data:image/png;base64,;
if (base64Img) {
doc.addImage(base64Img, 'JPEG', 40, 8, 140,30, 'MEDIUM')
}
doc.autoTable({
html: '#year_table',
startY: 50,
didDrawPage: function (data) {
var pageSize = doc.internal.pageSize
},
// pageBreak: 'avoid',
bodyStyles: {
fontSize: 8,
halign: 'right',
},
headStyles: {
fontSize: 10,
halign: 'center'
},
});
doc.autoTable({
html: '#clients_table',
startY: doc.lastAutoTable.finalY + 25,
didDrawPage: function (data) {
var pageSize = doc.internal.pageSize
// Header
doc.setFontSize(14)
doc.setTextColor(40)
doc.setFontStyle('bold')
doc.text(title, (doc.internal.pageSize.getWidth()/2)-half_width, 22)
doc.setFontSize(10)
doc.setTextColor(150);
doc.setFontStyle('nomal')
doc.text(date, (doc.internal.pageSize.getWidth()/2)-42, 33)
// Footer
var str = 'Page ' + doc.internal.getNumberOfPages()
// Total page number plugin only available in jspdf v1.0+
if (typeof doc.putTotalPages === 'function') {
str = str + ' of ' + totalPagesExp
}
doc.setFontSize(10)
doc.setTextColor(150);
// jsPDF 1.4+ uses getWidth, <1.4 uses .width
var pageHeight = pageSize.height ? pageSize.height : pageSize.getHeight()
doc.text(str, 40, pageHeight - 10)
},
// pageBreak: 'avoid',
headStyles: {
fontSize: 10,
halign: 'center'
},
bodyStyles: {
fontSize: 8,
halign: 'right',
company: {
halign: 'left',
}
},
columnStyles: {
0: {
halign : 'left',
textColor: [28, 126, 214],
},
},
footStyles:{
fontSize: 10,
halign: 'right'
},
drawCell: function(cell, data) {
if (data.table.rows.length === 0 || data.table.rows.length - 1) {
cell.styles.setFontStyle = 'bold';
}
},
showFoot: 'lastPage',
});
// Total page number plugin only available in jspdf v1.0+
if (typeof doc.putTotalPages === 'function') {
doc.putTotalPages(totalPagesExp)
}
doc.save("reports.pdf")
$("#loading").hide();
});
希望有人能够在这方面帮助我。我找不到任何关于此的文档或论坛讨论。谢谢。