Geração de PDF em TypeScript: bibliotecas, ferramentas e exemplos de código

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: guia completo para desenvolvedores



Criar documentos PDF é uma das tarefas mais requisitadas no desenvolvimento web moderno. Na linguagem TypeScript, existem várias bibliotecas poderosas que permitem gerar PDF tanto no lado do cliente quanto no servidor (Node.js). Neste artigo, veremos três ferramentas principais: PDFKit, jsPDF e pdf-lib, além de mostrar exemplos práticos de seu uso.



Por que gerar PDF em TypeScript?

TypeScript adiciona tipagem estática, o que é especialmente importante ao trabalhar com documentos de estrutura complexa. Usar TypeScript para geração de PDF permite:

  • Evitar erros de tipo ao criar tabelas e estilos
  • Simplificar a refatoração de grandes projetos
  • Integrar a geração de PDF com projetos TypeScript existentes (React, Angular, Node.js)


Visão geral das bibliotecas para geração de PDF



1. PDFKit (Node.js)

PDFKit é a biblioteca mais popular para criar PDF no servidor. Ela fornece acesso de baixo nível aos objetos PDF, suporta fontes, imagens, incorporação de gráficos vetoriais e caracteres cirílicos (ao conectar as fontes apropriadas).



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

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

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


Características:

  • Funciona apenas no Node.js (não é adequado para navegador)
  • Requer configuração manual de fontes para cirílico
  • Suporta layouts complexos, tabelas e gráficos


2. jsPDF (navegador e Node.js)

jsPDF é uma biblioteca versátil que funciona tanto no navegador quanto no servidor. É mais fácil de aprender, mas tem limitações quanto à complexidade dos layouts.



import { jsPDF } from 'jspdf';

const doc = new jsPDF();doc.text('Geração de PDF em TypeScript', 10, 10);doc.save('document.pdf');


Características:

  • API simples para documentos básicos
  • Suporte a cirílico (requer conexão de fontes via addFont)
  • Pode trabalhar com canvas e elementos HTML


3. pdf-lib (moderno e flexível)

pdf-lib é uma biblioteca leve com excelente suporte a TypeScript. Ela permite criar PDF do zero ou editar documentos existentes.



import { PDFDocument, StandardFonts, rgb } from 'pdf-lib';

async function createPDF() { const doc = await PDFDocument.create(); const page = doc.addPage(); const font = await doc.embedFont(StandardFonts.Helvetica);

page.drawText('PDF com pdf-lib', { x: 50, y: 700, size: 24, font, color: rgb(0, 0, 0), });

const pdfBytes = await doc.save(); // Salvar ou enviar}


Características:

  • Suporte completo a TypeScript (tipos incluídos)
  • Pode funcionar no navegador e Node.js
  • Permite modificar PDFs existentes
  • Requer trabalho manual com fontes para cirílico


Comparação das bibliotecas

Recommendations

Característica PDFKit jsPDF pdf-lib
Ambiente de execução Node.js Navegador + Node.js Navegador + Node.js
Suporte a TypeScript Parcial (via @types) Parcial Completo
Cirílico Requer fontes Requer fontes Requer fontes
Layouts complexos Excelente