Создавайте PDF-файлы из HTML и Markdown с помощью REST API.
Два запроса POST превращают HTML или Markdown в загружаемые PDF-файлы. Ни Puppeteer, ни Chromium, ни зависимости от 500 МБ. Счета, отчеты и квитанции менее чем за 1 секунду.
Ваше приложение генерирует счета. У вас есть HTML-шаблон. Теперь вам нужно превратить его в
загружаемый PDF-файл. Стандартный подход: устанавливаем Puppeteer, запускаем безголовый экземпляр Chromium,
позвонить page.pdf(). Это 300-500 МБ зависимостей для функции печати.
На производстве становится хуже. Хром теряет память под нагрузкой. Образы Docker раздуваются более чем на 1 ГБ. Холодный запуск занимает 3-8 секунд. В конечном итоге вы поддерживаете пул процессов браузера для чего-то это должен быть один вызов функции.
Есть более короткий путь. Отправьте HTML-код в API и получите обратно PDF-файл.
HTML в PDF одним POST-запросом
The /v1/pdf/from-html конечная точка принимает строку HTML и возвращает PDF-файл.
Никаких двоичных файлов браузера, никаких зависимостей, никаких настроек.
curl -X POST https://api.botoi.com/v1/pdf/from-html \\
-H "Content-Type: application/json" \\
-d '{
"html": "<h1>Invoice #1042</h1><p>Amount due: $2,450.00</p>"
}'
Ответ:
{
"success": true,
"data": {
"url": "https://api.botoi.com/pdfs/f7a2c1e8.pdf",
"size_bytes": 24576,
"pages": 1
}
}
The url Поле указывает на сгенерированный PDF-файл. Загрузите его, перенаправьте на него пользователя,
или сохраните его в своей корзине S3. API управляет рендерингом, нумерацией страниц и внедрением шрифтов.
Разметка в PDF одним POST-запросом
Не каждый документ начинается с HTML. Отчеты, журналы изменений и документация часто хранятся в формате Markdown.
/v1/pdf/from-markdown Конечная точка напрямую преобразует Markdown в стилизованный PDF-файл.
Ответ:
Таблицы, заголовки, жирный текст, блоки кода и списки отображаются правильно. API применяется чисто типографские значения по умолчанию, чтобы результат выглядел презентабельно без специального CSS.
Практический пример: создание счета-фактуры
Для реалистичного счета-фактуры требуется заголовок компании, платежный адрес, таблица позиций, расчет налогов, и условия оплаты. Вот полный счет, отправленный как один вызов API:
Этот единственный запрос создает профессиональный счет в формате PDF с фирменным бланком Cascade Software.
четыре позиции на общую сумму 2 257,00 долларов США, налог с продаж 8,5% в размере 191,85 долларов США и общую сумму 2 448,85 долларов США.
CSS в <style> тег управляет шрифтами, интервалами, границами таблицы и
жирный итоговый ряд. Вы можете использовать любой CSS, поддерживаемый браузером, включая flexbox, сетку и
@page правила полей и размера страницы.
Практический пример: квартальный отчет от Markdown
Отчеты естественным образом подходят для Markdown. Менеджеры по продуктам, аналитики и операционные команды уже пишут в Маркдауне. Преобразование в PDF для рассылки по электронной почте или архивирования выполняется одним вызовом API:
API преобразует таблицы, заголовки, жирный текст и нумерованный список в чистый PDF-файл. Нет промежуточный шаг HTML на вашей стороне. Передайте строку Markdown из вашей базы данных, Git репозиторий или экспорт Notion.
Практический пример: формирование чека в Express
Вот экспресс-маршрут, который генерирует квитанцию в формате PDF по запросу, когда пользователь ее запрашивает. для прошлого заказа:
The buildReceiptHtml функция берет данные заказа из вашей базы данных и выдает
стилизованная HTML-строка. Маршрут отправляет его в API botoi и возвращает URL-адрес PDF в
клиент. Никакого Кукловода. Никаких операций с файловой системой. Нет временных каталогов.
Та же картина в Хоно
Если вы используете Cloudflare Workers или Bun, версия Hono практически идентична:
Ключевое отличие: Hono получает доступ к переменным среды через c.env вместо
process.env. Все остальное остается прежним. Один вызов получения, один ответ JSON,
один URL-адрес PDF-файла.
Сравнение: API, Puppeteer, wkhtmltopdf и Prince
Четыре распространенных подхода к преобразованию HTML в PDF в сравнении с тем, что важно в производстве:
Кукольник дает вам полный контроль над браузером, но требует больших эксплуатационных расходов. Вы используете Chromium на своем сервере, управляете ограничениями памяти и обновляете систему безопасности. уязвимости в двоичном файле браузера. Хорошо работает, если вам нужно выполнение JavaScript, cookie внедрение или рендеринг аутентифицированной страницы.
wkhtmltopdf легче, чем Puppeteer, но использует устаревший QtWebKit. двигатель. Поддержка CSS застряла на уровне 2015 года. Flexbox и сетка не работают. Проект заархивирован на GitHub без активных сопровождающих.
Принц XML обеспечивает высочайшее качество печати с помощью полных CSS-страниц. поддержка. Компромисс: плата за лицензию в размере 3800 долларов США за сервер. Это имеет смысл для публикации рабочие процессы, а не создание счетов в приложении SaaS.
API-подход выигрывает, когда вам нужны PDF-файлы из шаблонов, которыми вы управляете (счета-фактуры, квитанции, отчеты, контракты) и не требуется отображать произвольные аутентифицированные страницы. Ноль настройка, отсутствие необходимости обслуживания, предсказуемая задержка.
Ключевые моменты
-
Две конечные точки, два входных формата.
/v1/pdf/from-htmlдля полный HTML с CSS./v1/pdf/from-markdownдля контента Markdown. - Никаких зависимостей на стороне сервера. Ни Puppeteer, ни Chromium, ни wkhtmltopdf. двоичный. Один HTTP-вызов с любого языка.
-
Полная поддержка CSS. Встроенные стили, теги стилей, flexbox, сетка, Google Fonts,
и
@pageмедиазапросы все работают. - Доступен бесплатный уровень. 5 запросов в минуту без ключа API. Платные планы начинаются с 9 долларов США в месяц для производственных рабочих нагрузок.
- Распространенные случаи использования. Счета, квитанции, отчеты, договоры, документация экспорт и вложения электронной почты.
Проверьте API документы для получения полной информации о параметрах, включая размер страницы, поля и верхний/нижний колонтитул. конфигурация.
FAQ
- Как программно создать PDF-файл из HTML?
- Отправьте запрос POST на https://api.botoi.com/v1/pdf/from-html с телом JSON, содержащим вашу строку HTML. API возвращает PDF-файл в кодировке Base64 или URL-адрес загрузки. Никакие двоичные файлы браузера, автономные экземпляры или зависимости на стороне сервера не требуются.
- Могу ли я конвертировать Markdown в PDF с помощью этого API?
- Да. Отправьте POST-запрос на https://api.botoi.com/v1/pdf/from-markdown со своей строкой Markdown. API преобразует Markdown во внутренний стиль HTML и возвращает PDF-файл. Поддерживает заголовки, таблицы, блоки кода и списки.
- Поддерживает ли API стили CSS при вводе HTML?
- Да. Вы можете включать встроенные стили, теги стилей и полный CSS в свой HTML. Механизм рендеринга поддерживает flexbox, сетку, пользовательские шрифты через ссылки Google Fonts, а также медиа-запросы для печати, такие как @page для полей и размера страницы.
- Является ли API создания PDF бесплатным?
- Анонимный доступ допускает 5 запросов в минуту с ограничением скорости на основе IP. Никакого API-ключа или регистрации не требуется. Платные планы начинаются с 9 долларов США в месяц и исключают ограничение скорости для производственных рабочих нагрузок, таких как создание счетов или пакетная отчетность.
- Чем API отличается от Puppeteer для создания PDF-файлов?
- Puppeteer требует установки Chromium (300–500 МБ), управления экземплярами браузера, устранения утечек памяти и обеспечения совместимости версий. Botoi API — это один HTTP-вызов с нулевой инфраструктурой. Установка занимает секунды, а не часы. Для большинства случаев использования PDF (счета-фактуры, отчеты, квитанции) API покрывает все, что вам нужно, без дополнительных эксплуатационных расходов.
Начните разработку с botoi
150+ API-эндпоинтов для поиска, обработки текста, генерации изображений и утилит для разработчиков. Бесплатный тариф, без банковской карты.