Вы можете использовать jspdf и jspdf-autotable для загрузки в формате pdf. Вот пример:
Но вам нужно изменить код в соответствии с вашими требованиями. Вам нужно назначить свой массив JSON в rowCountModNew. Надеюсь, это поможет тебе
В HTML:
<a (click)="convert()">Generate PDF</a>
В файле TS:
import * as jsPDF from 'jspdf';
import 'jspdf-autotable';
И используйте следующую функцию:
convert() {
var doc = new jsPDF();
var col = ["Id", "TypeID","Accnt","Amnt","Start","End","Contrapartida"];
var rows = [];
var rowCountModNew = [
["1721079361", "0001", "2100074911", "200", "22112017", "23112017", "51696"],
["1721079362", "0002", "2100074912", "300", "22112017", "23112017", "51691"],
["1721079363", "0003", "2100074913", "400", "22112017", "23112017", "51692"],
["1721079364", "0004", "2100074914", "500", "22112017", "23112017", "51693"]
]
rowCountModNew.forEach(element => {
rows.push(element);
});
doc.autoTable(col, rows);
doc.save('Test.pdf');
}
Рассматривая массив объектов в качестве ответа, модифицированный код будет:
convert() {
var doc = new jsPDF();
var col = ["Details", "Values"];
var rows = [];
/* The following array of object as response from the API req */
var itemNew = [
{ id: 'Case Number', name : '101111111' },
{ id: 'Patient Name', name : 'UAT DR' },
{ id: 'Hospital Name', name: 'Dr Abcd' }
]
itemNew.forEach(element => {
var temp = [element.id,element.name];
rows.push(temp);
});
doc.autoTable(col, rows);
doc.save('Test.pdf');
}
И PDF будет выглядеть так: