Repolode
Lulzx

Lulzx/tinypdf

Biblioteca minimalista de TypeScript, sin dependencias, para generar archivos PDF reales con texto, rectángulos, líneas, imágenes JPEG y enlaces.

Estrellas
1,923
Forks
76
Issues abiertos
0
Último commit
hace 2 meses

¿Qué es?

tinypdf es una pequeña biblioteca para crear PDF con TypeScript y JavaScript. No tiene dependencias, ocupa menos de 400 líneas de código y pesa unos 3,3 KB. Deja fuera deliberadamente las fuentes personalizadas, PNG/SVG, los formularios, el cifrado y la conversión de HTML a PDF, y se centra en colocar texto e imágenes en una página.

Los documentos se crean con una API basada en callbacks: se crea una página y se dibujan en ella texto, rectángulos, líneas, imágenes JPEG y enlaces en los que se puede hacer clic. Después, se llama a build() para obtener un Uint8Array o a buildStream() para obtener un ReadableStream con archivos grandes. El helper markdown() convierte markdown sencillo con encabezados, listas y reglas en un PDF paginado, y measureText() devuelve el ancho del texto en puntos.

El proyecto es adecuado para generar facturas, recibos, informes, entradas y certificados cuando el diseño es fijo y basta con texto en Helvetica. Para usar fuentes Unicode o funciones de PDF más complejas, el README recomienda jsPDF o pdf-lib.

Funciones clave

  • 01Dibuja texto en Helvetica con tamaño, color hexadecimal y alineación personalizados.
  • 02Añade rectángulos rellenos, líneas e imágenes JPEG a las páginas.
  • 03Crea enlaces en los que se puede hacer clic, con subrayado opcional.
  • 04Admite varias páginas con tamaños personalizados.
  • 05Convierte markdown sencillo en un PDF paginado.
  • 06Permite transmitir documentos grandes mediante buildStream().

Casos de uso

  • Generar facturas y recibos con un diseño fijo.
  • Crear entradas para eventos o certificados con logotipos y firmas.
  • Exportar informes de datos como PDF desde una aplicación de Node, Bun o JavaScript del lado del servidor.
  • Servir PDF como respuestas HTTP sin añadir dependencias pesadas.

Inicio rápido

  1. 1

    Instala el paquete desde npm

    npm install tinypdf
  2. 2

    Importa pdf, crea un documento, añade una página con texto y formas, y luego escribe el archivo

  3. 3

    Ejecuta cualquier ejemplo con Bun

    bun examples/executive-report.ts

Antes de usarlo

  • El texto solo utiliza la fuente Helvetica integrada con codificación WinAnsi; no admite Unicode ni fuentes personalizadas.
  • Las imágenes deben ser JPEG; no se admiten PNG, GIF ni SVG.
  • No incluye funciones como formularios, cifrado, compresión ni conversión de HTML a PDF.

Temas

Preguntas frecuentes

¿Qué es tinypdf?
Biblioteca minimalista de TypeScript, sin dependencias, para generar archivos PDF reales con texto, rectángulos, líneas, imágenes JPEG y enlaces. tinypdf es una pequeña biblioteca para crear PDF con TypeScript y JavaScript. No tiene dependencias, ocupa menos de 400 líneas de código y pesa unos 3,3 KB. Deja fuera deliberadamente las fuentes personalizadas, PNG/SVG, los formularios, el cifrado y la conversión de HTML a PDF, y se centra en colocar texto e imágenes en una página.
¿tinypdf es gratuito? ¿Qué licencia tiene?
tinypdf es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿tinypdf sigue mantenido?
Actualizado en los últimos 6 meses. El último commit de tinypdf fue el 13 ago 2026.
¿Para qué puedo usar tinypdf?
Generar facturas y recibos con un diseño fijo. Crear entradas para eventos o certificados con logotipos y firmas. Exportar informes de datos como PDF desde una aplicación de Node, Bun o JavaScript del lado del servidor. Servir PDF como respuestas HTTP sin añadir dependencias pesadas.
¿Cómo se instala tinypdf?
Instala el paquete desde npm: npm install tinypdf Importa pdf, crea un documento, añade una página con texto y formas, y luego escribe el archivo Ejecuta cualquier ejemplo con Bun: bun examples/executive-report.ts
¿Dónde consigo tinypdf?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Lulzx/tinypdf

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados