我不知道如何使用jsPDF-AutoTable的主题。。。
这是我生成PDF的代码:
function tbl1ToPDF(){
var table = tableToJson($('#tbl1').get(0));
var doc = new jsPDF('l','pt','letter',true);
$.each(table, function(i, row){
$.each(row, function(j,cell){
if(i == 0)
{
doc.cell(10,10,150,50,cell,i, 'center');
}
else
{
doc.cell(10,10,150,120,cell,i,'center');
}
});
});
doc.save('Sofort.pdf');
}这是我的tableToJson函数:
function tableToJson(table) {
var data = [];
var headers = [];
for (var i = 0; i < table.rows[0].cells.length; i++) {
headers[i] = table.rows[0].cells[i].innerHTML.toLowerCase().replace(/ /gi, '');
}
data.push(headers);
// go through cells
for (var i = 1; i < table.rows.length; i++) {
var tableRow = table.rows[i];
var rowData = {};
for (var j = 0; j < tableRow.cells.length; j++) {
rowData[headers[j]] = tableRow.cells[j].innerHTML;
}
data.push(rowData);
}
return data;
}我的表是动态的。我在按下按钮后生成它,但表的结构如下所示:
<h3>Header</h3>
<table id="tbl1">
<thead>
<tr>
<th>Nr</th>
<th>Name</th>
<th>Unit</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>test</td>
<td>test</td>
</tr>
<tr>
<td>2</td>
<td>test</td>
<td>test</td>
</tr>
</tbody>
</table>
<input type="button" onclick="tbl1ToPDF" value="download">你能帮我把一个主题应用到我的PDF中吗?我以前从来没有这样做过,我真的需要帮助!
谢谢你!
发布于 2020-04-02 17:07:51
为了使用jsPDF-Autotable插件,你需要在代码内部调用它,如下所示:
var doc = new jsPDF();
doc.autoTable();一旦你调用了autoTable,你就可以像这样对它应用一些选项,比如“主题”:
doc.autoTable({theme: 'grid'});例如,我有一个id = " table -report-p2p“的HTML表(3列),我使用autoTableHtmlToJson()从其中获取数据,然后应用一些选项。
这是适合我的代码:
var elem = document.getElementById("table-report-p2p");
var res = doc.autoTableHtmlToJson(elem);
doc.autoTable(res.columns, res.data, {
theme: 'grid',
startY: 150,
margin: {horizontal: 10},
pageBreak: 'auto',
rowPageBreak: 'avoid',
columnStyles: {0: {cellWidth: 35, minCellHeight: 53},1: {cellWidth: 70},2: {cellWidth: 84}}
});https://stackoverflow.com/questions/45233712
复制相似问题