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 pdfkitTambé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.
```Também na biblioteca
Trabalhando com YAML em Swift: biblioteca Yams para iOS/macOS
Cliente Redis para TypeScript: ioredis e redis (node-redis)
Doctrine ORM para PHP: guia completo com exemplos práticos
Laravel Telescope para PHP: guia completo com exemplos práticos
Doctrine DBAL para PHP: guia completo com exemplos práticos