我試圖將HTML轉換爲pdf時遇到了奇怪的錯誤使用jsPDF-AutoTable插件。根據official Github page,可以通過使用createdHeaderCell
和createdCell
掛鉤來自定義任何headerCell和普通單元。我使用下面的代碼來更改特定標題和行單元格的樣式(Name
標題和Jack
單元格)。我也上傳這個代碼here。如何使用jsPDF-AutoTable插件在PDF中自定義頁眉單元格?
$('#btn').click(function(){
var columns = ['ID','Name','Address','Age'];
var rows = [
[1,'John','Vilnius',22],
[2,'Jack','Riga',25]
];
var doc = new jsPDF('p', 'pt');
doc.setFontSize(20);
doc.text(30, 30, 'Table');
doc.autoTable(columns, rows, {
margin: { top: 50, left: 20, right: 20, bottom: 0 },
createdHeaderCell: function (cell, data) {
if (cell.raw === 'Name') {
cell.styles.fontSize= 15;
cell.styles.textColor = 111;
} else {//else rule for drawHeaderCell hook
cell.styles.textColor = 255;
cell.styles.fontSize = 10;
}
},
createdCell: function (cell, data) {
if (cell.raw === 'Jack') {
cell.styles.fontSize= 15;
cell.styles.textColor = 111;
}
}
});
doc.save('output.pdf');
});
在這段代碼createdCell
鉤按預期工作和風格Jack
細胞,但沒有發生爲Name
頭。我錯過了什麼,或者它是一個錯誤?發生下一Address
頭
,我覺得用drawHeaderCell
代替createdHeaderCell
奇怪的解決方法,但在這種情況下,造型有趣的事情,而不是Name
因爲我想。我的解決方法:我以前使用ID
標題風格Name
,但這種解決方案不是很漂亮,因爲我應該使用else
規則進行造型,否則造型將適用於ID
之後的所有標頭,而不僅僅是Name
,所以我想了解一下我的初始代碼是錯誤的。
謝謝你的關注。