Latest code::: convert() {
const doc = new jsPDF();
// tslint:disable-next-line:max-line-length
const col = ['DischargeDate', 'Case Number', 'Patient Name', 'Hospital Name', 'Payor', 'Total Doctor Fee', 'To be Collected'];
const rows = [];
/* The following array of object as response from the API req */
const itemNew = this.finalArList;
itemNew.forEach(element => {
// tslint:disable-next-line:max-line-length
const temp = [element.dischargeDate, element.caseNo, element.patientName, element.instName, element.payor, element.totalDrFee, element.drFeeToCollect];
rows.push(temp);
});
doc.autoTable(col, rows);
doc.save('Test.pdf');
}
The above is the api url that returns an array of object and in View I am printing those data. Now how to download this list as a pdf format.
json data returned from api call would look something like this. How do I implement download as PDF for this json data.
Okay here is the code I have tried.
public downloadPdf() {
return this.http
.get('http://161.202.31.51:8185/sgdocsrv/ar/getARList', {
responseType: ResponseContentType.Blob
})
.map(res => {
return {
filename: 'filename.pdf',
data: res.blob()
};
})
.subscribe(res => {
console.log('start download:', res);
const url = window.URL.createObjectURL(res.data);
const a = document.createElement('a');
document.body.appendChild(a);
a.setAttribute('style', 'display: none');
a.href = url;
a.download = res.filename;
a.click();
window.URL.revokeObjectURL(url);
a.remove(); // remove the element
}, error => {
console.log('download error:', JSON.stringify(error));
}, () => {
console.log('Completed file download.')
});
}
But it doesnt work . Here the return this.http has a get call, but my api has a post method. I am not sure whats the exact logic to try.