在整天的工作后,以下代码成功将粗体和普通文本混合在一个单元格中。
要下载
autotable.js 源代码,请通过此链接进行操作。(复制名为
autoTableJSpdf.js 的文件中的所有代码)
要下载
html2canvas(1.0.0-alpha.11)源代码,请通过此链接进行操作,并下载“html2canvas.js”文件并将其粘贴到您的文件夹中并在脚本中包含它。(无需更改此文件。)
html2canvas 1.0.0 alpha.11
下载autotablejs 3.2.2
我以自己的数据为参考。
** 整个HTML和JavaScript代码 **
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script type="text/javascript" src="html2canvas.js"></script> // download source code & paste inside file called "html2canvas.js"
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.debug.js" integrity="sha384-NaWTHo/8YCBYJ59830LTz/P4aQZK1sS0SneOgAvhsIl3zBu8r9RevNg5lHCHAuQ/" crossorigin="anonymous"></script>
<script src="autoTableJSpdf.js"></script>
</head>
<body>
<h1>Hello world</h1>
<div id='doc'>
<p>Hello world</p>
<div class="first-page">
<h1>bond</h1>
<img src="1.png"/>
</div>
<div class="second-page">
<img src="2.png"/>
</div>
</div>
<button onclick="saveDoc()">click</button>
<script type="text/javascript">
var doc = new jsPDF();
var header = ["qty","particular","luzon","trading","arrow"];
doc.autoTable({
willDrawCell: (data) => {
if(data.section==='body') {
if(data.row.index===0 && data.column.index ===2) {
var endIndex = data.cell.raw.indexOf('/');
var boldText = data.cell.raw.substring(0,endIndex);
var normalText = data.cell.raw.substring(endIndex);
console.log("boldText is "+boldText+" normalText is "+normalText);
data.cell.text = '<b>'+boldText+'</b>'+normalText;
console.log("after data cell iss ");
console.log(data.cell.raw);
console.log('<b>'+boldText+'</b>'+normalText);
}
}
},
head: [header],
body: [
['5 tube','electrical','260.00 /roll','290.00 ,Armark1','230.00,crorocdile'],
['6 tube','electrical1','261.00 /roll','291.00 ,Armark11','231.00,crorocdile']
]
});
console.log("i is "+i);
doc.save('table.pdf');
</script>
</body>
</html>
在编写上述代码后,您需要在下载的
autoTableJSpdf.js文件中更改
jsPDF.API.autoTableText方法,如下所示。只需添加如下内容。"Original Answer" 翻译成 "最初的回答"。
if (typeof x !== 'number' || typeof y !== 'number') {
console.error('The x and y parameters are required. Missing for text: ', text);
}
if (/<[a-z][\s\S]*>/i.test(text)) {
const div = document.createElement('div');
div.innerHTML = text;
text = div.innerHTML;
this.fromHTML('<div style=" font-size: 15px; ">' + text + '</div>', x, y, {
'width': 120
});
return this;
}
以下链接可能会有所帮助。
如何混合使用粗体和普通HTML在GitHub上
最初的回答。