Executando verificação de segurança...
1

[AJUDA] Eu preciso converter html para pdf no pipedream

Tenho tentado usar o puppeteer para fazer essa conversão o problema é que quando o pdf que é gerado retorna em branco, ou seja o texto "TESTETETE" não aparece no body.

Com isso, entendo que possívelmente o page.setContent() não está funcionando ou tem algo errado, já tentei usar o page.content() mas obtive o mesmo resultado uma pdf em branco.

Parece haver algumas diferenças no puppeteer "original" para o puppeteer do pipedream, da para ver isso aqui.

Caso você tenha passado por isso, ou tenha alguma outra sugestão de como converter html em pdf no pipedream ou viu que estou fazendo alguma coisa errado, por favor, da um help aqui.

O meu código atual está logo abaixo:

import { puppeteer } from '@pipedream/browsers';

export default defineComponent({
  async run({ steps, $ }) {
    let html = `<!DOCTYPE html>`;
    html += `<html lang="en">`;
      html += `<head>`;
        html += `<meta charset="UTF-8">`;
        html += `<meta name="viewport" content="width=device-width, initial-scale=1.0">`;
        html += `<title>Document</title>`;
      html += `</head>`;
      html += `<body>`;
        html += `TESTETETE`;
      html += `</body>`;
    html += `</html>`;

    const browser = await puppeteer.browser();
    const page = await browser.newPage();

    await page.setContent(html);

    const pdfBuffer = await page.pdf({
      format: 'A4',
      margin: {
        top: '1cm',
        right: '1cm',
        bottom: '1cm',
        left: '1cm',
      }
    });

    await browser.close();

    const pdfBase64 = pdfBuffer.toString("base64");

    // const pdfBlob = new Blob([Uint8Array.from(atob(pdfBase64), c => c.charCodeAt(0))], { type: 'application/pdf' });

    // const pdfBlob = new Blob([pdfBuffer], { type: 'application/pdf' });
    // const pdfUrl = URL.createObjectURL(pdfBlob);

    await $.respond({
      status: 200,
      headers: {
        'Content-Type': 'application/pdf',
      },
      body: pdfBase64,
    })
  },
})
Carregando publicação patrocinada...