Repolode
Lulzx

Lulzx/tinypdf

Минималистичная TypeScript-библиотека без зависимостей для создания настоящих PDF-файлов с текстом, фигурами, линиями, JPEG-изображениями и ссылками.

Звёзды
1,923
Форки
76
Открытые issues
0
Последний коммит
2 месяца назад

Что это?

tinypdf — небольшая библиотека для создания PDF на TypeScript и JavaScript. У неё нет зависимостей, а весь код занимает менее 400 строк и около 3,3 КБ. Библиотека намеренно не поддерживает пользовательские шрифты, PNG/SVG, формы, шифрование и конвертацию HTML в PDF: её задача — размещать на странице текст и изображения.

Документы создаются через API с callback-функциями: вы создаёте страницу, добавляете на неё текст, прямоугольники, линии, JPEG-изображения и кликабельные ссылки, а затем вызываете build(), чтобы получить Uint8Array, или buildStream(), чтобы получить ReadableStream для больших файлов. Вспомогательная функция markdown() преобразует простой Markdown с заголовками, списками и разделителями в PDF с разбивкой по страницам, а measureText() возвращает ширину текста в пунктах.

Проект подойдёт для создания счетов, квитанций, отчётов, билетов и сертификатов с фиксированным макетом, где достаточно текста шрифтом Helvetica. Для Unicode-шрифтов и более сложных возможностей PDF в README рекомендуются jsPDF или pdf-lib.

Ключевые возможности

  • 01Рисует текст шрифтом Helvetica с настраиваемыми размером, цветом в hex-формате и выравниванием.
  • 02Добавляет на страницы залитые прямоугольники, линии и JPEG-изображения.
  • 03Создаёт кликабельные ссылки с необязательным подчёркиванием.
  • 04Поддерживает несколько страниц с пользовательскими размерами.
  • 05Преобразует простой Markdown в PDF с разбивкой по страницам.
  • 06Передаёт большие документы потоком через buildStream().

Сценарии использования

  • Создание счетов и квитанций с фиксированным макетом.
  • Создание билетов на мероприятия или сертификатов с логотипами и подписями.
  • Экспорт данных в PDF из приложений на Node, Bun или серверном JavaScript.
  • Отправка PDF в HTTP-ответах без добавления тяжёлых зависимостей.

Быстрый старт

  1. 1

    Установите пакет из npm

    npm install tinypdf
  2. 2

    Импортируйте pdf, создайте документ, добавьте страницу с текстом и фигурами, а затем запишите файл

  3. 3

    Запустите любой пример с помощью Bun

    bun examples/executive-report.ts

Что важно знать

  • Для текста доступен только встроенный шрифт Helvetica с кодировкой WinAnsi; Unicode и пользовательские шрифты не поддерживаются.
  • Поддерживаются только изображения JPEG; PNG, GIF и SVG не поддерживаются.
  • Такие функции, как формы, шифрование, сжатие и преобразование HTML в PDF, не включены.

Темы

Частые вопросы

Что такое tinypdf?
Минималистичная TypeScript-библиотека без зависимостей для создания настоящих PDF-файлов с текстом, фигурами, линиями, JPEG-изображениями и ссылками. tinypdf — небольшая библиотека для создания PDF на TypeScript и JavaScript. У неё нет зависимостей, а весь код занимает менее 400 строк и около 3,3 КБ. Библиотека намеренно не поддерживает пользовательские шрифты, PNG/SVG, формы, шифрование и конвертацию HTML в PDF: её задача — размещать на странице текст и изображения.
tinypdf можно использовать бесплатно? Какая у него лицензия?
tinypdf распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
tinypdf всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в tinypdf — 13 авг. 2026 г..
Для чего можно использовать tinypdf?
Создание счетов и квитанций с фиксированным макетом. Создание билетов на мероприятия или сертификатов с логотипами и подписями. Экспорт данных в PDF из приложений на Node, Bun или серверном JavaScript. Отправка PDF в HTTP-ответах без добавления тяжёлых зависимостей.
Как установить tinypdf?
Установите пакет из npm: npm install tinypdf Импортируйте pdf, создайте документ, добавьте страницу с текстом и фигурами, а затем запишите файл Запустите любой пример с помощью Bun: bun examples/executive-report.ts
Где скачать tinypdf?
Исходный код и инструкции по установке — на GitHub: https://github.com/Lulzx/tinypdf

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Платформа для электронной подписи документов с открытым исходным кодом — альтернатива DocuSign, которую можно развернуть на своих серверах и которая использует подписи PDF.

15,5 тыс.3,4 тыс.TypeScriptAGPL-3.0Обновлён 7 часов назад