使用 jspdf 将数组导出为 table
export an array as table using jspdf
我的数据格式如下。
[
{"Company":"XYZ1", "FName":"John", "LName": "Deere", "ID": 1234},
{"Company":"XYZ2", "FName":"Jack", "LName": "Jones", "ID": 2345},
{"Company":"XYZ3", "FName":"James", "LName": "Lebron", "ID": 3456}
]
有没有办法将 2 个不同表格中的相同数据导出到 PDF 文件中?我正在使用 Angular 4 和 jsPDF 包。
Table: 1
**Company** **FName**
XYZ1 John
XYZ2 Jack
XYZ3 James
Table: 2
**LName** **ID**
Deere 1234
Jones 2345
Lebron 3456
让我尝试通过举个例子来概括问题并简化答案,
我将创建一个示例 table
The HTML file looks like....
<div id="render_me">
<div id="table">
<table id="StudentInfoListTable">
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>Dani</td>
</tr>
</tbody>
</table>
</div>
<a href="#">Download Test PDF</a>
JS 文件看起来像...
var doc = new jsPDF();
// We'll make our own renderer to skip this editor
var specialElementHandlers = {
'#editor': function(element, renderer){
return true;
}
};
doc.fromHTML($('#render_me').get(0), 15, 15, {
'width': 170,
'elementHandlers': specialElementHandlers
});
//doc.save('Test.pdf');
$('a').click(function(){
doc.save('TestHTMLDoc.pdf');
});
您可以使用 jspdf 和 jspdf-autotable 下载为 pdf。这是相同的示例。大家可以根据自己的需要修改。。希望对你有所帮助
在HTML中:
<a (click)="convert()">Generate PDF</a>
在 TS 文件中:
import * as jsPDF from 'jspdf';
import 'jspdf-autotable';
并使用以下函数:
convert() {
var doc = new jsPDF();
var col = ["Sr. No.","Details"];
var col1 = ["Details", "Values"];
var rows = [];
var rows1 = [];
/* The following array of object as response from the API req */
var itemNew = [
{ index:'1',id: 'Case Number', name : '101111111' },
{ index:'2',id: 'Patient Name', name : 'UAT DR' },
{ index:'3',id: 'Hospital Name', name: 'Dr Abcd' }
]
itemNew.forEach(element => {
var temp = [element.index,element.id];
var temp1 = [element.id,element.name];
rows.push(temp);
rows1.push(temp1);
});
doc.autoTable(col, rows, { startY: 10 });
doc.autoTable(col1, rows1, { startY: 60 });
doc.save('Test.pdf');
}
它将如下所示:
我的数据格式如下。
[
{"Company":"XYZ1", "FName":"John", "LName": "Deere", "ID": 1234},
{"Company":"XYZ2", "FName":"Jack", "LName": "Jones", "ID": 2345},
{"Company":"XYZ3", "FName":"James", "LName": "Lebron", "ID": 3456}
]
有没有办法将 2 个不同表格中的相同数据导出到 PDF 文件中?我正在使用 Angular 4 和 jsPDF 包。
Table: 1
**Company** **FName**
XYZ1 John
XYZ2 Jack
XYZ3 James
Table: 2
**LName** **ID**
Deere 1234
Jones 2345
Lebron 3456
让我尝试通过举个例子来概括问题并简化答案, 我将创建一个示例 table
The HTML file looks like....
<div id="render_me">
<div id="table">
<table id="StudentInfoListTable">
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>Dani</td>
</tr>
</tbody>
</table>
</div>
<a href="#">Download Test PDF</a>
JS 文件看起来像...
var doc = new jsPDF();
// We'll make our own renderer to skip this editor
var specialElementHandlers = {
'#editor': function(element, renderer){
return true;
}
};
doc.fromHTML($('#render_me').get(0), 15, 15, {
'width': 170,
'elementHandlers': specialElementHandlers
});
//doc.save('Test.pdf');
$('a').click(function(){
doc.save('TestHTMLDoc.pdf');
});
您可以使用 jspdf 和 jspdf-autotable 下载为 pdf。这是相同的示例。大家可以根据自己的需要修改。。希望对你有所帮助
在HTML中:
<a (click)="convert()">Generate PDF</a>
在 TS 文件中:
import * as jsPDF from 'jspdf';
import 'jspdf-autotable';
并使用以下函数:
convert() {
var doc = new jsPDF();
var col = ["Sr. No.","Details"];
var col1 = ["Details", "Values"];
var rows = [];
var rows1 = [];
/* The following array of object as response from the API req */
var itemNew = [
{ index:'1',id: 'Case Number', name : '101111111' },
{ index:'2',id: 'Patient Name', name : 'UAT DR' },
{ index:'3',id: 'Hospital Name', name: 'Dr Abcd' }
]
itemNew.forEach(element => {
var temp = [element.index,element.id];
var temp1 = [element.id,element.name];
rows.push(temp);
rows1.push(temp1);
});
doc.autoTable(col, rows, { startY: 10 });
doc.autoTable(col1, rows1, { startY: 60 });
doc.save('Test.pdf');
}
它将如下所示: