Я использую jsPDF с autotable, я пытаюсь центрировать таблицу с фиксированной шириной на сгенерированной странице PDF. Кажется, я не могу найти решение для этого, везде, где я смотрю, это просто полная ширина, я не хочу, чтобы мой стол был полной шириной. Я попробовал с опцией полей, но это не очень точно, и я не совсем уверен, как рассчитать поля от А4 до горизонтального центрирования моей таблицы.
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();
});
2 ответа
Вы можете рассчитать поля следующим образом:
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');
Оберните таблицу элементом div.
<div class="table-container">
<table id="my-table"><!--...--></table>
</div>
В CSS напишите класс для центрирования таблицы внутри контейнера.
div.table-container {
display: flex;
justify-content: center;
}
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.