如何在页面上水平居中固定宽度 table?带有自动 table 的 jsPDF
How to center fixed width table on page horizontally? jsPDF with autotable
我将 jsPDF 与 autotable 一起使用,我试图在生成的 pdf 页面上以固定宽度将 table 居中。我似乎无法为此找到解决方案,我看到的所有地方都是全角,我不希望我的 table 是全角。我尝试使用边距选项,但它不是很精确,我不完全确定如何计算 A4 的边距以水平居中我的 table。
截图:
document.querySelector(".report-btn").addEventListener("click", () => {
const pdfDoc = new jsPDF();
const list = createListforPdf(); // function to generate list
pdfDoc.autoTable({
theme: "grid",
tableWidth: 100,
styles: { halign: "center" },
columnStyles: {
0: { cellWidth: 85, halign: "left" },
1: { cellWidth: 15 }
},
head: [["MRZ Check number", "is OK?"]],
body: [[list[0], "YES"], [list[1], "NO"]]
});
pdfDoc.save();
});
用 div 元素包裹 table。
<div class="table-container">
<table id="my-table"><!--...--></table>
</div>
在 CSS 中,写入 class 使 table 在容器中居中。
div.table-container {
display: flex;
justify-content: center;
}
您可以通过以下方式计算边距:
let doc = new jsPDF();
let wantedTableWidth = 100;
let pageWidth = doc.internal.pageSize.width;
let margin = (pageWidth - wantedTableWidth) / 2;
doc.autoTable({
head: [['Name', 'Country']],
body: [
['Leon', 'Sweden'],
['Magnus', 'Norway'],
['Juan', 'Argentina'],
],
margin: {left: margin, right: margin}
});
doc.save('table.pdf');
我将 jsPDF 与 autotable 一起使用,我试图在生成的 pdf 页面上以固定宽度将 table 居中。我似乎无法为此找到解决方案,我看到的所有地方都是全角,我不希望我的 table 是全角。我尝试使用边距选项,但它不是很精确,我不完全确定如何计算 A4 的边距以水平居中我的 table。
截图:
document.querySelector(".report-btn").addEventListener("click", () => {
const pdfDoc = new jsPDF();
const list = createListforPdf(); // function to generate list
pdfDoc.autoTable({
theme: "grid",
tableWidth: 100,
styles: { halign: "center" },
columnStyles: {
0: { cellWidth: 85, halign: "left" },
1: { cellWidth: 15 }
},
head: [["MRZ Check number", "is OK?"]],
body: [[list[0], "YES"], [list[1], "NO"]]
});
pdfDoc.save();
});
用 div 元素包裹 table。
<div class="table-container">
<table id="my-table"><!--...--></table>
</div>
在 CSS 中,写入 class 使 table 在容器中居中。
div.table-container {
display: flex;
justify-content: center;
}
您可以通过以下方式计算边距:
let doc = new jsPDF();
let wantedTableWidth = 100;
let pageWidth = doc.internal.pageSize.width;
let margin = (pageWidth - wantedTableWidth) / 2;
doc.autoTable({
head: [['Name', 'Country']],
body: [
['Leon', 'Sweden'],
['Magnus', 'Norway'],
['Juan', 'Argentina'],
],
margin: {left: margin, right: margin}
});
doc.save('table.pdf');