HTML-страницу можно перевести в PDF-документ несколькими способами: через браузер, онлайн-конвертер, десктопную программу или программную библиотеку. Нижеперечисленные методы не требуют специальных знаний и подходят для разных сценариев — от быстрого сохранения одной страницы до автоматизации пакетной конвертации.
Способ 1: сохранить HTML в PDF через браузер
Это самый быстрый метод — не нужно ничего скачивать или устанавливать. Подходит, если у вас уже есть HTML-файл, который открывается в браузере.
Google Chrome
- Откройте HTML-файл в Chrome (перетащите файл в окно браузера или нажмите
Ctrl+O). - Нажмите
Ctrl+P(или⌘+Pна macOS). - В поле «Принтер» выберите «Сохранить как PDF».
- Настройте размер бумаги, поля, ориентацию и масштаб.
- Нажмите «Сохранить» и укажите путь.
Mozilla Firefox
- Откройте файл в Firefox.
- Нажмите
Ctrl+P. - В диалоге печати выберите принтер «Microsoft Print to PDF» (Windows) или «Сохранить в PDF» (macOS).
- Настройте параметры и сохраните.
Microsoft Edge
Алгоритм аналогичен Chrome — Edge построен на том же движке Chromium. Нажмите Ctrl+P → «Принтер» → «Сохранить как PDF».
Safari (macOS)
- Откройте HTML-файл в Safari.
- Меню «Файл» → «Экспорт в PDF».
- Укажите имя и папку.
Важно: при печати из браузера внешние стили и изображения подгружаются с реальных URL. Если HTML-файл ссылается на локальные ресурсы по относительным путям, они могут не отобразиться. В таком случае предварительно откройте файл через локальный сервер или конвертируйте через онлайн-сервис с загрузкой ZIP-архива.
Способ 2: онлайн-конвертеры HTML в PDF
Онлайн-сервисы удобны, когда нужно быстро конвертировать файл без установки ПО. Загрузите HTML-файл или вставьте URL страницы — сервис вернёт готовый PDF.
Как работают популярные онлайн-конвертеры
| Параметр | Типичные возможности |
|---|---|
| Загрузка | Файл .html / .htm, ZIP-архив, URL страницы |
| Размер | Обычно до 50–100 МБ на файл |
| Время | 5–30 секунд на стандартный файл |
| Доступ | Бесплатно с ограничениями, без регистрации |
| Хранение | Автоудаление через 1–24 часа |
Пошаговая инструкция
- Откройте онлайн-конвертер в браузере.
- Загрузите HTML-файл кнопкой «Выбрать файл» или перетащите его в окно страницы.
- Если конвертер поддерживает URL — вставьте ссылку на веб-страницу.
- Дождитесь обработки и нажмите «Скачать PDF».
- Проверьте результат: откройте PDF и убедитесь, что все элементы отображаются корректно.
Что проверить в готовом PDF
- Изображения — загрузились ли они все или вместо них пустые рамки.
- Шрифты — совпадают ли с оригиналом, не заменились ли на стандартные.
- Таблицы и списки — сохранилась ли структура, не «поехала» ли вёрстка.
- Ссылки — кликабельные ли они внутри PDF (многие конвертеры сохраняют гиперссылки).
- Разбивка на страницы — не разрезает ли контент посередине абзаца или таблицы.
Способ 3: десктопные программы
Для регулярной работы или работы с конфиденциальными файлами подойдут локальные приложения.
Adobe Acrobat Pro
Позволяет создавать PDF из HTML через функцию «Создать» → «Из файла» или через встроенный HTML-to-PDF движок. Поддерживает настройку размера страницы, тегов доступности и профилей PDF/A для архивирования.
LibreOffice Writer
Откройте HTML-файл в Writer, затем «Файл» → «Экспорт в PDF». LibreOffice корректно обрабатывает базовую вёрстку — заголовки, таблицы, списки, встроенные стили. Сложные CSS-эффекты (flexbox, grid, анимации) могут не поддерживаться.
Pandoc (командная строка)
pandoc input.html -o output.pdf
Pandoc использует LaTeX или wkhtmltopdf в качестве рендер-движка. Подходит для документов с чёткой текстовой структурой: статей, документации, отчётов. Изображения и базовые стили поддерживаются, сложная вёрстка — частично.
Способ 4: программные библиотеки (для разработчиков)
Если конвертация HTML в PDF нужна в рамках приложения или автоматического пайплайна, используйте специализированные библиотеки.
Puppeteer / Playwright (Node.js)
Обе библиотеки управляют headless-версией Chromium и генерируют PDF через метод page.pdf():
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com', { waitUntil: 'networkidle0' });
await page.pdf({ path: 'output.pdf', format: 'A4' });
await browser.close();
})();
Плюсы: полная поддержка CSS, JavaScript, веб-шрифтов. Рендеринг идентичен Chrome.
Минусы: требуется установка Chromium (≈150–300 МБ).
wkhtmltopdf
Легковесная утилита командной строки на базе движка WebKit:
wkhtmltopdf https://example.com output.pdf
Подходит для серверных сценариев, где нет возможности запускать Chromium. Поддерживает оглавление, колонтитулы, JavaScript (с задержкой).
WeasyPrint (Python)
from weasyprint import HTML
HTML(filename='page.html').write_pdf('output.pdf')
Чистый Python без внешних зависимостей вроде Chromium. Поддерживает CSS Paged Media — разбивку на страницы, колонтитулы, счётчики страниц. Хороший выбор для генерации счетов, сертификатов, отчётов.
iText / Apache PDFBox (Java)
Библиотеки для серверных Java-приложений. iText предлагает продвинутую работу с PDF-тегами, формами и цифровыми подписями. PDFBox — свободная альтернатива с базовой конвертацией.
На что обратить внимание при конвертации
Внешние ресурсы
HTML-страницы часто ссылаются на внешние CSS, шрифты и изображения. Если конвертер не имеет доступа к интернету (или файл открывается по протоколу file://), эти ресурсы не подгрузятся. Решения:
- Встройте CSS и шрифты прямо в HTML (тег
<style>, base64-кодирование). - Упакуйте HTML и все ресурсы в ZIP-архив и загрузите его в конвертер.
- Запускайте конвертацию через локальный сервер (
http-server,python -m http.server).
Размер и ориентация страницы
PDF имеет фиксированные размеры, в отличие от резиновой HTML-страницы. Задайте параметры явно:
| Параметр | Типичные значения |
|---|---|
| Формат | A4 (210×297 мм), Letter (216×279 мм) |
| Ориентация | Книжная (портрет), альбомная (ландшафт) |
| Поля | 10–25 мм с каждой стороны |
| Масштаб | 100% или «подогнать под ширину» |
Кодировка
Если текст в PDF отображается «кракозябрами», проверьте: в HTML-файле объявлена ли кодировка UTF-8 (<meta charset="UTF-8">). Большинство современных конвертеров ожидают UTF-8 по умолчанию, но файлы в Windows-1251 или ISO-8859-1 могут вызвать проблемы.
Кликабельные ссылки и закладки
Не все методы сохраняют гиперссылки. Браузерная печать и большинство онлайн-конвертеров сохраняют их. wkhtmltopdf и WeasyPrint — тоже. Программные библиотеки (PDFBox, iText) позволяют добавлять ссылки вручную.
Какой способ выбрать
| Сценарий | Рекомендуемый метод |
|---|---|
| Быстро сохранить одну страницу | Браузер: Ctrl+P → «Сохранить как PDF» |
| Конвертировать файл без установки ПО | Онлайн-конвертер |
| Конфиденциальный документ | Локальная программа или браузер |
| Пакетная конвертация (десятки файлов) | Скрипт с Puppeteer, wkhtmltopdf или WeasyPrint |
| PDF с точным повторением вёрстки | Puppeteer / Playwright (Chrome-движок) |
| Генерация документов (счёт, сертификат) | WeasyPrint (CSS Paged Media) |
| Архивный PDF с тегами доступности | Adobe Acrobat Pro или iText |