Repolode
Lulzx

Lulzx/tinypdf

Biblioteca TypeScript minimalista e sem dependências para gerar PDFs reais com texto, retângulos, linhas, imagens JPEG e links.

Estrelas
1,923
Forks
76
Issues abertas
0
Último commit
há 2 meses

O que é?

tinypdf é uma pequena biblioteca para criar PDFs com TypeScript e JavaScript. Ela não tem dependências e tem menos de 400 linhas de código, com cerca de 3,3 KB. De propósito, não inclui fontes personalizadas, PNG/SVG, formulários, criptografia nem conversão de HTML para PDF: seu foco é colocar texto e imagens em uma página.

Os documentos são criados com uma API baseada em callbacks: você cria uma página, desenha texto, retângulos, linhas, imagens JPEG e links clicáveis nela e, em seguida, chama build() para obter um Uint8Array ou buildStream() para obter um ReadableStream para arquivos grandes. Um helper chamado markdown() converte markdown simples, com títulos, listas e linhas horizontais, em um PDF paginado, e measureText() retorna a largura do texto em pontos.

O projeto é adequado para gerar faturas, recibos, relatórios, ingressos e certificados com layout fixo e texto em Helvetica. Para fontes Unicode ou recursos de PDF mais complexos, o README recomenda jsPDF ou pdf-lib.

Recursos principais

  • 01Desenha texto em Helvetica com tamanho, cor hexadecimal e alinhamento personalizados.
  • 02Adiciona retângulos preenchidos, linhas e imagens JPEG às páginas.
  • 03Cria links clicáveis com sublinhado opcional.
  • 04Oferece suporte a várias páginas com tamanhos personalizados.
  • 05Converte markdown simples em um PDF paginado.
  • 06Faz streaming de documentos grandes com buildStream().

Casos de uso

  • Gerar faturas e recibos com layout fixo.
  • Criar ingressos para eventos ou certificados com logotipos e assinaturas.
  • Exportar relatórios de dados em PDF a partir de um app Node, Bun ou JavaScript no servidor.
  • Disponibilizar PDFs em respostas HTTP sem adicionar dependências pesadas.

Início rápido

  1. 1

    Instale o pacote pelo npm

    npm install tinypdf
  2. 2

    Importe pdf, crie um documento, adicione uma página com texto e formas e, em seguida, grave o arquivo

  3. 3

    Execute qualquer exemplo com Bun

    bun examples/executive-report.ts

Antes de usar

  • O texto usa apenas a fonte Helvetica integrada com codificação WinAnsi; não há suporte para Unicode nem fontes personalizadas.
  • As imagens devem ser JPEG; PNG, GIF e SVG não são compatíveis.
  • Recursos como formulários, criptografia, compactação e conversão de HTML para PDF não estão incluídos.

Tópicos

Perguntas frequentes

O que é tinypdf?
Biblioteca TypeScript minimalista e sem dependências para gerar PDFs reais com texto, retângulos, linhas, imagens JPEG e links. tinypdf é uma pequena biblioteca para criar PDFs com TypeScript e JavaScript. Ela não tem dependências e tem menos de 400 linhas de código, com cerca de 3,3 KB. De propósito, não inclui fontes personalizadas, PNG/SVG, formulários, criptografia nem conversão de HTML para PDF: seu foco é colocar texto e imagens em uma página.
tinypdf é gratuito? Qual é a licença?
tinypdf é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
tinypdf ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de tinypdf foi em 13 de ago. de 2026.
Para que posso usar tinypdf?
Gerar faturas e recibos com layout fixo. Criar ingressos para eventos ou certificados com logotipos e assinaturas. Exportar relatórios de dados em PDF a partir de um app Node, Bun ou JavaScript no servidor. Disponibilizar PDFs em respostas HTTP sem adicionar dependências pesadas.
Como instalar tinypdf?
Instale o pacote pelo npm: npm install tinypdf Importe pdf, crie um documento, adicione uma página com texto e formas e, em seguida, grave o arquivo Execute qualquer exemplo com Bun: bun examples/executive-report.ts
Onde consigo tinypdf?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/Lulzx/tinypdf

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados