使用nestjs将JSON数据生成PDF时遇到一些问题 在我的代码中,我想将findPDFSales的结果替换为generatePDF()中的body字段,该结果是JSON
这是我的控制人:
@Post()
findReportSales(@Body() params): object {
console.log(params.date1,params.date2,params.loc);
return this.salesService.findReportSales(params.date1,params.loc);
}
@Get('/generateToPDF')
generatePDF() {
const fonts = {
Helvetica: {
normal: 'Helvetica',bold: 'Helvetica-Bold',italics: 'Helvetica-Oblique',bolditalics: 'Helvetica-BoldOblique'
}
};
const printer = new PdfPrinter(fonts);
const docDefinition = {
content: [
{ text: 'Sales Report',fontSize: 20},{
layout: 'lightHorizontalLines',// optional
table: {
headerRows: 1,widths: [ '*','auto',100,'*' ],body: [
[ 'First','Second','Third','The last one' ],[ 'Value 1','Value 2','Value 3','Value 4' ],[ 'Val 1','Val 2','Val 3','Val 4' ]
],},],defaultStyle: {
font: 'Helvetica'
}
};
const options = {
}
let file_name = 'PDF' + uuid() + '.pdf';
const pdfDoc = printer.createPdfKitDocument(docDefinition,options);
pdfDoc.pipe(fs.createWriteStream(file_name));
pdfDoc.end();
return {'file_name': file_name};
}
这是我的服务
async findReportSales(date1,date2,loc): Promise<any> {
return await this.orderRepository.createQueryBuilder("order")
.andWhere("date(sale_time) = :date1",{date1: date1} )
.andWhere("id_location = :loc",{ loc: loc} )
.getMany();
}
我的findReportSales响应如下:
[
{
"id_sale": 1,"id_desktop": 64,"id_meja": 2,"id_location": 2,"customer": "","kasir": 11,"waiter": 11,"discount": 15000,"discount_value": 0,"tax": 0,"service": 0,"number_of_guest": 0,"notes": "","split": 0,"type": 2,"status": 1,"total_pay": 100000,"pay_time": "2019-05-11T02:31:42.000Z","grand_total": 85000,"sale_time": "2019-05-11T02:31:42.000Z","target": 400000000
}
]
如何在generatePDF()中将findReportSales中的JSON数据响应显示为PDF?