reactjs - 如何合并页脚?
问题描述
我想知道如何将页脚合并到我的报告中(例如:第 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;
推荐阅读
- python - 在 Pandas DataFrame 中动态选择多个列
- javascript - 有没有办法在 Javascript 中移动到下一次迭代之前等待计算
- typoscript - Typo3 7.6 - 仅在 HMENU 中禁用 absRefPrefix,而不是在完整站点上
- java - 将 lambda 方法从 Java 迁移到 Kotlin 时出现“类型不匹配”
- google-apps-script - 在 Google 表格的 CopyRow 代码中找不到错误
- php - 如何在带有 php 服务器(windows 10)的网站中的 xammp(apache)服务器中显示直播?
- javascript - 读取文本并从 div 标签中使用它
- rest - here.com REST API 是否支持室内定位
- javascript - 特定字符串的 RegEx 连续验证
- bigdata - 在 PowerBI 中计算新列