我正在使用jspdf保存一个PDF文件。我的HTML文件中有表格,而且表格没有标题。但是jspdf的功能是在每一页上自动重复表格的第一行,并且它们是重叠的。我不想在每一个新页上都有标题。有什么方法可以这样做。附上page的屏幕截图。提前谢谢!!!
$scope.SavePage = function() {
var doc = new jsPDF('p', 'pt', 'a4', true);
margins = {
top: 200,
bottom: 60,
left: 40,
width: 522
};
specialElementHandlers = {
'#ignoreComponent': function(element, renderer) {
return true
},
'#ignorePage': function(element, renderer) {
return true
}
};
var source = $('#pageInformationPdf')[0];
doc.fromHTML(source, margins.left, margins.top, {
'width': margins.width,
'pagesplit': true,
'elementHandlers': specialElementHandlers
},
function(dispose) {
doc.save(pageName + '.pdf');
}, margins);
}
最佳答案
您可以使用drawHeaderRow
钩子。下面是示例代码
function generate() {
var doc = new jsPDF('p', 'pt');
var elem = document.getElementById('table');
var data = doc.autoTableHtmlToJson(elem);
//Do not print the header if current page not the first page.
doc.autoTable(data.columns, data.rows, {
drawHeaderRow: function(row, data) {
if (data.pageCount > 1) {
return false;
}
}
});
doc.save("table.pdf");
}
html格式
<button onclick="generate()">Generate PDF</button>
<table id="table" style="display: none;">
<thead>
<tr>
<th>ID</th>
<th>First name</th>
<th>Last name</th>
<th>Email</th>
<th>Country</th>
<th>IP-address</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">1</td>
<td>Donna</td>
<td>Moore</td>
<td>[email protected]</td>
<td>China</td>
<td>211.56.242.221</td>
</tr>
<tr>
<td align="right">2</td>
<td>Janice</td>
<td>Henry</td>
<td>[email protected]</td>
<td>Ukraine</td>
<td>38.36.7.199</td>
</tr>
</tbody>
</table>