问题描述
我想知道如何将Footer纳入我的报告(例如:第1页,共2页)。使用库在其URL示例中建议的相同代码,但变量:const totalPagesExp =“ {total_pages_count_string}”;永远不值钱。 预先感谢。
[![import jsPDF from "jspdf";
import "jspdf-autotable";
const generatePDFTable = (reportData) => {
// initialize jsPDF
const doc = new jsPDF();
const totalPagesExp = "{total_pages_count_string}";
doc.autoTable({
columns: reportData.columns,body: reportData.body,theme: reportData.theme ? reportData.theme : "grid",styles: { ...reportData.styles },columnStyles: { ...reportData.columnStyles },bodyStyles: { ...reportData.bodyStyles },headStyles: { ...reportData.headStyles },footStyles: { ...reportData.footStyles },showHead: reportData.showHead ? reportData.showHead : "everyPage",showFoot: reportData.showFoot ? reportData.showFoot : "everyPage",pageBreak: reportData.pageBreak ? reportData.pageBreak : "auto",rowPageBreak: reportData.rowPageBreak ? reportData.rowPageBreak : "auto",didDrawPage: function (data) {
// Footer
let str = "Page " + doc.internal.getNumberOfPages();
if (typeof doc.putTotalPages === "function") {
str = str + " of " + totalPagesExp;
}
doc.setFontSize(10);
const pageSize = doc.internal.pageSize;
const pageHeight = pageSize.height
? pageSize.height
: pageSize.getHeight();
doc.text(str,data.settings.margin.left,pageHeight - 10);
},});
doc.save(reportData.fileName ? reportData.fileName : "table.pdf");
};
export default generatePDFTable;][1]][1]
解决方法
import jsPDF from "jspdf";
import "jspdf-autotable";
const generatePDFTable = (reportData) => {
// initialize jsPDF
const doc = new jsPDF();
const totalPagesExp = "{total_pages_count_string}";
doc.autoTable({
columns: reportData.columns,body: reportData.body,theme: reportData.theme ? reportData.theme : "grid",styles: { ...reportData.styles },columnStyles: { ...reportData.columnStyles },bodyStyles: { ...reportData.bodyStyles },headStyles: { ...reportData.headStyles },footStyles: { ...reportData.footStyles },showHead: reportData.showHead ? reportData.showHead : "everyPage",showFoot: reportData.showFoot ? reportData.showFoot : "everyPage",pageBreak: reportData.pageBreak ? reportData.pageBreak : "auto",rowPageBreak: reportData.rowPageBreak ? reportData.rowPageBreak : "auto",didDrawPage: function (data) {
// Footer
let str = "Page " + doc.internal.getNumberOfPages();
if (typeof doc.putTotalPages === "function") {
str = str + " of " + totalPagesExp;
}
doc.setFontSize(10);
const pageSize = doc.internal.pageSize;
const pageHeight = pageSize.height
? pageSize.height
: pageSize.getHeight();
doc.text(str,data.settings.margin.left,pageHeight - 10);
},});
// Total page number plugin only available in jspdf v1.0+
if (typeof doc.putTotalPages === "function") {
doc.putTotalPages(totalPagesExp);
}
doc.save(reportData.fileName ? reportData.fileName : "table.pdf");
};
export default generatePDFTable;