Geração de PDF em TypeScript: bibliotecas e ferramentas para Node.js

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 de bibliotecas e ferramentas



Criar documentos PDF é uma das tarefas comuns no desenvolvimento web. O TypeScript, graças à tipagem forte e aos recursos modernos, permite escrever código confiável para geração de PDF tanto no cliente quanto no servidor. Neste artigo, veremos bibliotecas e ferramentas populares para geração de PDF em TypeScript, suas características e exemplos de uso.



1. PDFKit — poderosa biblioteca para servidor



PDFKit é uma das bibliotecas mais populares para criar PDF no Node.js. Ela fornece controle total sobre a estrutura do documento, suporta fontes, imagens, anotações e gráficos vetoriais. O PDFKit funciona no servidor e é ideal para gerar relatórios complexos, faturas ou certificados.



Instalação e exemplo:



npm install pdfkit @types/pdfkit


import PDFDocument from 'pdfkit';import * as fs from 'fs';

const doc = new PDFDocument();

doc.pipe(fs.createWriteStream('output.pdf'));

doc.fontSize(25).text('Olá, mundo!', 100, 100);doc.fontSize(12).text('Este é um PDF gerado com PDFKit e TypeScript.', 100, 150);

doc.end();


PDFKit é ideal para:



  • Criar PDF no servidor (Express, NestJS)
  • Trabalhar com fontes personalizadas e codificações (incluindo cirílico)
  • Adicionar imagens, tabelas e primitivos gráficos


2. jsPDF — geração de PDF no cliente



jsPDF é uma biblioteca cliente para criar PDF diretamente no navegador. É simples de usar, suporta texto, imagens, anotações e formas básicas. Para TypeScript, os tipos estão disponíveis através do DefinitelyTyped.



Instalação:



npm install jspdf @types/jspdf


Exemplo de geração de PDF no navegador:



import { jsPDF } from 'jspdf';

const doc = new jsPDF();

doc.text('Olá, TypeScript!', 10, 10);doc.text('Este é um PDF criado no navegador.', 10, 20);

doc.save('document.pdf');


jsPDF é adequado para:



  • Baixar PDF no lado do cliente (relatórios, recibos)
  • Documentos simples sem layout complexo
  • Prototipagem rápida


3. Puppeteer — geração a partir de HTML



Puppeteer é uma biblioteca para controlar o navegador Chrome/Chromium. Ela permite converter páginas HTML em PDF com preservação total de estilos, fontes e layout. Ideal para criar documentos complexos, relatórios e cartões de visita.



Instalação:



npm install puppeteer


Exemplo de conversão de HTML para PDF:



import puppeteer from 'puppeteer';

async function generatePDF(html: string, outputPath: string): Promise<void> { const browser = await puppeteer.launch(); const page = await browser.newPage();

await page.setContent(html, { waitUntil: 'networkidle0' }); await page.pdf({ path: outputPath, format: 'A4' });

await browser.close();}

// Usoconst htmlContent = `<h1 style="color: blue;">Título</h1><p>Texto com estilos HTML</p>`;generatePDF(htmlContent, 'output.pdf');


Puppeteer é ideal para:



  • Converter templates HTML complexos em PDF
  • Criar PDF com estilos CSS, Flexbox, Grid
  • Gerar PDF no servidor com controle total da aparência


4. pdf-lib — biblioteca leve e rápida



pdf-lib é uma biblioteca moderna para criar e modificar documentos PDF sem dependências externas. Funciona tanto no Node.js quanto no navegador. Suporta fontes, imagens, formulários e anotações.



Instalação:



npm install pdf-lib
\

Recommendations