Как создать PDF в AWS Lambda Express? - PullRequest
0 голосов
/ 11 апреля 2020

Это мой пример кода, что я тут не так делаю? Я получаю пустую страницу, когда отправляю почтовый запрос на URL-адрес apigateway.

Что-нибудь, чего мне здесь не хватает?

 router.post("/:template", async function(req, res, next) {
  const fileName = `${template}_${req.body.invoice.orderNumber}_${req.body.invoice.dueDate}.pdf`;
  const html = compiler(req.body);
  let browser = null;
  try {
    browser = await chromium.puppeteer.launch({
      args: chromium.args,
      defaultViewport: chromium.defaultViewport,
      executablePath: await chromium.executablePath,
      headless: chromium.headless
    });
    const page = await browser.newPage();
    page.setContent(html);
    const pdf = await page.pdf({
      format: "A4",
      printBackground: true,
      margin: { top: "1cm", right: "1cm", bottom: "1cm", left: "1cm" }
    });
    const response = {
      headers: {
        'Content-type': 'application/pdf',
        'content-disposition':`attachment;filename=${fileName}`
      },
      statusCode: 200,
      body: pdf.toString('base64'),
      isBase64Encoded: true,
      fileName: fileName
    }
    res.send(response);
  } catch (error) {
    next(error);
  } finally {
    if (browser !== null) {
      await browser.close();
    }
  }
});
...