Geração de PDF em JavaScript: biblioteca PDFKit

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 é PDFKit?

PDFKit é uma biblioteca poderosa para gerar documentos PDF em JavaScript (Node.js). Ela permite criar arquivos PDF complexos de várias páginas com texto, imagens, tabelas, gráficos vetoriais e anotações. O PDFKit implementa completamente a especificação PDF 1.7 e não requer dependências externas, tornando-o uma escolha ideal para aplicações server-side em Node.js.

Por que a geração de PDF em JavaScript é necessária?

A geração de PDF no lado do servidor é útil em vários cenários: criação de faturas e recibos, formação de relatórios, geração de certificados, exportação de dados para um formato portátil. O PDFKit permite automatizar esses processos, funcionando completamente no ambiente Node.js sem um navegador. Você pode criar documentos dinamicamente, inserir dados do banco de dados, adicionar marcas d'água e assinaturas.

Instalação do PDFKit

A instalação da biblioteca é simples e feita via npm:

npm install pdfkit

Também é recomendado instalar pdfkit-table para trabalhar convenientemente com tabelas ou svg-to-pdfkit para inserir gráficos SVG.

Principais funções do PDFKit

  • Texto e fontes: suporte a Unicode, incorporação de fontes, alinhamento, quebra de linha, kerning.
  • Gráficos vetoriais: linhas, retângulos, círculos, curvas de Bézier, gradientes.
  • Imagens: inserção de JPEG, PNG, SVG (via plugin).
  • Tabelas: criação de tabelas com largura automática de colunas, estilos e cabeçalhos.
  • Anotações: links, marcadores, metadados (autor, assunto), marcas d'água.
  • Páginas: adição, configuração de tamanho, orientação, margens, numeração.

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

const PDFDocument = require('pdfkit');const fs = require('fs');

// Criamos o documentoconst doc = new PDFDocument();

// Salvamos no arquivoconst stream = fs.createWriteStream('output.pdf');doc.pipe(stream);

// Adicionamos um títulodoc.fontSize(25).text('Olá, mundo!', 100, 100);

// Adicionamos texto com quebra de linhadoc.fontSize(12).text('Este é um exemplo de PDF criado com PDFKit.', 100, 150);

// Desenhamos uma linhadoc.moveTo(100, 200).lineTo(400, 200).stroke();

// Inserimos uma imagem (se houver)// doc.image('path/to/image.png', 100, 250, {width: 200});

// Nova páginadoc.addPage();doc.fontSize(20).text('Página 2');

// Adicionamos uma tabela (via pdfkit-table)// doc.table({ headers: ['Nome', 'Idade'], rows: [['Ana', 25], ['João', 30]] });

// Finalizamos o documentodoc.end();

stream.on('finish', () => { console.log('PDF criado com sucesso');});

Quando usar PDFKit?

PDFKit é adequado para tarefas onde é necessário controle total sobre o conteúdo do PDF: desde documentos de texto simples até relatórios complexos com gráficos, tabelas e marcas d'água. Ele é mais rápido e leve que o Puppeteer, se a renderização de HTML não for necessária. Use PDFKit se você estiver criando documentos no servidor Node.js e quiser evitar iniciar um navegador. Para tarefas simples onde é necessário HTML-to-PDF, o Puppeteer é mais adequado.

```

Recommendations