我试图将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
,所以我想了解一下我的初始代码是错误的。
谢谢你的关注。