Geração de PDF em JavaScript: biblioteca pdf-lib

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course
```html

O que é pdf-lib e para que serve?

pdf-lib é uma biblioteca JavaScript poderosa e limpa para criar e modificar documentos PDF no lado do servidor (Node.js) e no navegador. Ao contrário de soluções pesadas como Puppeteer, pdf-lib não requer a instalação de um navegador ou dependências externas. Ela trabalha diretamente com a especificação PDF, tornando-se a escolha ideal para gerar documentos simples e de complexidade média: relatórios, faturas, certificados, formulários e contratos.

Instalação

Para instalar no projeto Node.js, execute o comando:

npm install pdf-lib

A biblioteca não possui dependências nativas e é compatível com Node.js 10+.

Principais funcionalidades

  • Criação de PDF do zero (páginas em branco, texto, imagens, incorporação de fontes).
  • Edição de PDFs existentes (extrair páginas, inserir, excluir, girar).
  • Trabalho com formulários (preenchimento de campos, criação de checkboxes e botões de rádio).
  • Suporte a Unicode e fontes personalizadas (TTF, OTF).
  • Adição de metadados (autor, título, data).
  • Exportação para ArrayBuffer, Uint8Array ou Blob.

Exemplo de código em JavaScript (Node.js)

Abaixo está um exemplo simples de criação de PDF com texto e imagem:

const { PDFDocument, rgb } = require('pdf-lib');const fs = require('fs');

async function createPDF() { const doc = await PDFDocument.create(); const page = doc.addPage([600, 400]); // Adiciona texto page.drawText('Привет, мир!', { x: 50, y: 350, size: 30, color: rgb(0, 0.53, 0.71), }); // Incorpora fonte (opcional) const fontBytes = fs.readFileSync('./fonts/roboto.ttf'); const font = await doc.embedFont(fontBytes); page.drawText('Fonte personalizada', { x: 50, y: 300, size: 20, font: font, }); // Salva const pdfBytes = await doc.save(); fs.writeFileSync('output.pdf', pdfBytes); console.log('PDF criado!');}

createPDF().catch(console.error);

Este código cria um documento com duas linhas, uma das quais usa uma fonte incorporada. Para trabalhar com imagens, use doc.embedPng() ou doc.embedJpg().

Quando usar pdf-lib

  • Você precisa gerar um PDF rapidamente sem iniciar um navegador.
  • O documento não contém layout complexo (tabelas, colunas) — para isso, são melhores os template engines como Puppeteer.
  • É necessária uma biblioteca leve com tamanho mínimo (~500 KB).
  • Você trabalha com formulários ou edita PDFs existentes.

Conclusão

pdf-lib é uma excelente escolha para projetos que precisam de geração de PDF no Node.js sem dependências extras. É fácil de aprender, bem documentada e suporta todas as operações principais. Para layouts complexos, considere Puppeteer ou jsPDF, mas para 80% das tarefas, pdf-lib será mais que suficiente.

```

Recommendations