DEV Community

Danilo Machado
Danilo Machado

Posted on • Edited on

Guia: Trabalhando com pdfs na AWS através do Node.js

Depois de apanhar bastante tentando realizar tarefas que envolviam pdf na AWS, deixo esse guia para quem precisar realizar esse tipo de demanda.

No meu caso, eu precisava fazer em node, então todas as bibliotecas e features que usei, são em javascript.

1) Primeira pergunta a se fazer, o serviço é um AWS Lambda/Batch ou ECS?

AWS Lambda/Batch

Recomendo usar a biblioteca puppeteer na versão 8 do node, pois as versões mais atualizadas são mais pesadas e a AWS limita o tamanho do lambda em 250mbs. Outra opção seria criar um layer na AWS Layer.

O puppetter utiliza o chromium para realizar as impressões e é bem fácil utilizar.

Dá pra imprimir páginas da web e templates em html montado através do handlebars.

ECS

Já no ECS, recomendo a utilização do html-pdf na
versão ^8.0.0 do node, por ser mais leve e funcionar bem. Ele utiliza o phantomjs, que não funciona no AWS Lambda e Batch;

2) Precisa encryptar, colocar senha no pdf?

Sem dúvidas, a melhor opção pra encryptar os pdfs, atribuir senhas de user e owner é o hummus-recipe, ele precisa rodar na versão >=14.0.0 do node para funcionar.

Ele funciona muito bem em qualquer serviço da AWS.

Mas se por algum acaso não conseguir utilizar o hummus-recipe para encrypt, devido a versão do node ser inferior a 14.0.0, outro bom pacote é o qpdf. Será preciso copiar os arquivos binários do qpdf para o container através do Dockerfile para executar o qpdf.

Agora é só subir o pdf pro S3 e ser feliz!

Top comments (0)