Geração de PDF em TypeScript: visão geral das bibliotecas e ferramentas

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

Geração de PDF em TypeScript: visão geral das ferramentas



A geração de documentos PDF é uma das tarefas frequentes no desenvolvimento web. Graças ao TypeScript e bibliotecas poderosas, você pode criar relatórios complexos, faturas, certificados e outros documentos diretamente no navegador ou no servidor (Node.js). Neste artigo, vamos analisar as principais bibliotecas para trabalhar com PDF em TypeScript, suas características e exemplos de uso.



1. jsPDF — biblioteca leve e popular



jsPDF é uma das bibliotecas mais comuns para criar PDF no lado do cliente. Ela permite gerar documentos diretamente no navegador, usando apenas JavaScript/TypeScript. A biblioteca suporta texto, imagens, tabelas e formatação básica.



Instalação

npm install jspdf @types/jspdf


Exemplo: criando um PDF simples

import { jsPDF } from 'jspdf';

const doc = new jsPDF();doc.text('Olá, mundo!', 10, 10);doc.save('document.pdf');


Prós e contras

  • ✅ Facilidade de uso
  • ✅ Funciona no navegador e Node.js (com módulos adicionais)
  • ❌ Suporte limitado para layouts complexos
  • ❌ Difícil trabalhar com tabelas (requer configuração manual)


2. PDFKit — ferramenta poderosa para geração no servidor



PDFKit é uma biblioteca para Node.js que oferece controle total sobre a criação de PDF. Ela é ideal para geração no servidor de documentos complexos: relatórios, faturas, brochuras. Suporta fontes, gradientes, gráficos vetoriais e documentos com várias páginas.



Instalação

npm install pdfkit @types/pdfkit


Exemplo: criando um PDF com texto e imagem

import PDFDocument from 'pdfkit';import fs from 'fs';

const doc = new PDFDocument();doc.pipe(fs.createWriteStream('output.pdf'));

doc.fontSize(25).text('Título', 100, 100);doc.image('path/to/image.png', 100, 150, { width: 200 });doc.end();


Prós e contras

  • ✅ Flexibilidade e controle total
  • ✅ Suporte para gráficos complexos
  • ❌ Não funciona no navegador (apenas Node.js)
  • ❌ API mais complexa em comparação com jsPDF


3. Puppeteer — geração de HTML para PDF



Puppeteer é uma biblioteca para controlar o navegador Chrome headless. Ela permite converter páginas HTML em PDF, o que é útil se você já tem a estrutura do documento pronta (por exemplo, uma fatura ou relatório). Adequado tanto para geração no cliente quanto no servidor.



Instalação

npm install puppeteer


Exemplo: gerando PDF a partir de HTML

import puppeteer from 'puppeteer';

async function generatePDF() { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.setContent('<h1>Olá, PDF!</h1><p>Este é um relatório.</p>'); await page.pdf({ path: 'report.pdf', format: 'A4' }); await browser.close();}

generatePDF();


Prós e contras

  • ✅ Uso completo de CSS e HTML
  • ✅ Suporte para layouts e estilos complexos
  • ❌ Requer instalação do Chrome (tamanho grande)
  • ❌ Mais lento que bibliotecas especializadas


4. pdfmake — geração baseada em estrutura JSON



pdfmake é uma biblioteca que usa uma abordagem declarativa: você descreve a estrutura do documento em JSON, e a biblioteca constrói o PDF. Ideal para criar tabelas, listas e relatórios.



Instalação

npm install pdfmake @types/pdfmake


Exemplo: criando um PDF com tabela

import pdfMake from 'pdfmake/build/pdfmake';import pdfFonts from 'pdfmake/build/vfs_fonts';

pdfMake.vfs = pdfFonts.pdfMake.vfs;

const docDefinition = { content: [ { text: 'Relatório'

Recommendations