从DB生成数据到PDF Nest.js

使用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?

ckm5138 回答:从DB生成数据到PDF Nest.js

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3098045.html

大家都在问