Конвертировать HTML в PDF
Превратите HTML-файл — или вставленную разметку — в PDF, разбитый на страницы и выглядящий точно как сама страница: flexbox, grid, градиенты, изображения и типографика сохранены.
- Удаляется сразу после конвертации
- Зашифрованная передача, мгновенное удаление
- Без регистрации и водяных знаков
Как это работает
Добавьте HTML
Перетащите файл .html или вставьте разметку в поле.
Выберите страницу
Размер страницы, ориентация и поля — применяются как настоящий CSS для печати.
Конвертируйте и скачайте
Отрисовано и разбито на страницы ровно так, как сделали бы «Печать → Сохранить как PDF», с настоящим выделяемым текстом.
К чему странице разрешено обращаться и чем управляет CSS
У конвертации нет доступа к сети, и скрипты она не выполняет — и то и другое решения безопасности, а не недостающие функции. Конвертер, который загружал бы всё, что запросит присланная страница, можно было бы натравить на адреса, видимые только нашему серверу, а выполняющий скрипты запускал бы чужой код. Поэтому таблица стилей со ссылкой на CDN не придёт, изображение с обычным веб-адресом не загрузится, веб-шрифт будет молча заменён, а страница, которая рисует себя через JavaScript, конвертируется такой, какой её описывает разметка до запуска чего-либо. Решение всегда одно и то же: встройте CSS в блок style, а изображения — как data URI. Браузеры умеют это сами — «Сохранить страницу как → Веб-страница, полностью» в Firefox или «Сохранить как MHTML», — и сохранённая однофайловая страница конвертируется точно.
Результатом на самом деле управляет CSS для печати — это второе, что стоит знать. Страница верстается как для печати, поэтому блок @media print срабатывает, а обычная экранная таблица стилей может и не сработать, — вот почему страница с правилом печати, скрывающим навигацию, конвертируется прекрасно, а страница без него тащит за собой всё оформление сайта. @page управляет бумагой: размер, ориентация и поля читаются из него. break-before, break-after и break-inside: avoid решают, где делятся страницы, так что таблица, которую нельзя разрывать, или раздел, который должен начинаться с новой страницы, полностью в ваших руках.
Классическая потеря — фоны. Браузеры по умолчанию не печатают фоновые цвета и изображения, так что тёмная шапка может превратиться в белую, если в таблице стилей нет -webkit-print-color-adjust: exact, — одна строка, и в ней разница между фирменным документом и голым. Текст остаётся настоящим текстом, ссылки — рабочими ссылками, а заголовки могут стать закладками PDF, если в разметке использованы настоящие элементы заголовков.
Если наш сервер недоступен, страница сообщает об этом и собирает документ локально — при этом сохраняются текст, изображения и простая вёрстка, а всё, что требует настоящего прохода вёрстки, упрощается: в том числе grid, flexbox, float и позиционирование. Простой документ конвертируется почти один в один, свёрстанный дизайнером — нет.
Если нужно другое
Чтобы конвертировать живой URL — чего эта страница намеренно не умеет, — тот же движок отрисовки, что работает на нашем сервере, можно запустить у себя: chrome --headless --disable-gpu --print-to-pdf=out.pdf https://example.com загружает страницу с работающей сетью, со скриптами и всем прочим. В этом вся разница, и ради неё к нему и стоит обращаться.
Для настоящего контроля над колонтитулами, номерами страниц и полями WeasyPrint и Prince как следует реализуют спецификацию CSS Paged Media: колонтитулы из @top-center, счётчики страниц, сноски и перекрёстные ссылки, которые превращаются в номера страниц. WeasyPrint бесплатен, и его использует большинство конвейеров документации. Chrome почти ничего из этого не поддерживает, так что для сгенерированного отчёта с «Страница 3 из 12» в нижнем колонтитуле нужен один из них, а не этот инструмент.
Частые вопросы
Будет ли всё выглядеть точно как моя страница?
Да — результат получается ровно таким, как при «Печать → Сохранить как PDF». Flexbox, grid, float, градиенты, тени, SVG и веб-шрифты выглядят точно так же, как на экране.
Сохраняется ли мой HTML где-нибудь?
Он отправляется на наш сервер по зашифрованному соединению, конвертируется и удаляется в тот момент, когда готов PDF, — ничего не сохраняется, не записывается в журналы и никому не передаётся. Если сервер вдруг недоступен, инструмент переключается на собственный конвертер и сообщает вам об этом.
Выполняется ли JavaScript?
Нет, намеренно — страница отрисовывается только по разметке и стилям. Выполнять непроверенные скрипты на сервере было бы дырой в безопасности, а документ, который стоит конвертировать, не должен собирать себя во время выполнения.
Можно ли использовать внешние изображения или таблицы стилей?
Нет — ради безопасности конвертация отрезана от сети. Встройте CSS в страницу, а изображения — как data URI; всё самодостаточное отрисовывается идеально.
Можно ли выделять текст?
Да. В PDF настоящий векторный текст и графика, а не скриншот, поэтому он остаётся чётким при любом масштабе, и его можно выделять, искать и копировать.
Как определяются разрывы страниц?
Настоящим CSS для печати: содержимое перетекает со страницы на страницу, а правила page-break-before, page-break-after и page-break-inside в вашей разметке соблюдаются в точности так, как их соблюдает браузер при печати.
Полезно знать: Скрипты не выполняются, и у конвертации нет доступа к сети — встройте стили в страницу, а изображения — как data URI. Живые URL загрузить нельзя: сначала сохраните страницу в файл. Если наш сервер недоступен, резервный конвертер в браузере сохраняет текст и простую вёрстку, но упрощает сложный CSS.
Ещё Инструменты для PDF
PDF в HTML
Одна автономная веб-страница
TXT в PDF
Текст или заметки в аккуратный PDF
Word в PDF
DOCX в PDF — точно как экспортирует Word
EPUB в PDF
Электронные книги в PDF с кликабельным оглавлением
Excel в PDF
XLSX в PDF — точно как печатает Excel
PowerPoint в PDF
Слайды в PDF — точно как экспортирует PowerPoint