Сохранение сайта в PDF: как избежать «поехавшей» верстки

Иван Корнев·26.05.2026·5 мин

Чтобы сохранить веб-страницу в PDF без потери форматирования, используйте встроенную функцию печати браузера (Ctrl+P / Cmd+P) с обязательным включением опции «Фоновая графика» и настройкой полей «Нет» или «Минимальные». Для сложных страниц с динамическим контентом лучше применять специализированные сервисы или расширения, которые рендерят страницу полностью перед конвертацией.

Ниже мы разберем лучшие способы для разных задач: от быстрой статьи до сложного лендинга с анимациями.

Оглавление

Почему верстка ломается при сохранении {#pochemu-verstka-lomaetsya}

Веб-страницы создаются для экранов мониторов, а PDF — это цифровой аналог бумажного листа. Конфликт возникает из-за трех факторов:

  1. Разная ширина: Экран широкий и резиновый, лист A4 фиксирован.
  2. CSS для печати: Многие сайты имеют отдельные стили (@media print), которые скрывают меню, меняют шрифты или убирают цвета для экономии чернил.
  3. Динамический контент: Скрипты, подгружающие изображения или текст после загрузки страницы, могут не успеть отработать в момент конвертации.

Способ 1: Встроенная печать в браузере (базовый) {#sposob-1-vstroennaya-pechat}

Самый быстрый метод, работающий в Chrome, Edge, Safari и Firefox. Подходит для статей, документации и простых страниц.

Пошаговая инструкция:

  1. Нажмите Ctrl + P (Windows/Linux) или Cmd + P (macOS).
  2. В пункте «Принтер» или «Назначение» выберите «Сохранить как PDF».
  3. Раскройте «Дополнительные настройки»:
    • Фоновая графика: Обязательно поставьте галочку. Без нее исчезнут цветные плашки, фон кнопок и многие элементы дизайна.
    • Поля: Выберите «Нет» или «Минимальные», чтобы контент не обрезался по краям.
    • Масштаб: Если текст слишком мелкий или крупный, регулируйте масштаб (обычно 80–100%).
  4. Нажмите «Сохранить».

В браузере Chrome перед сохранением нажмите правой кнопкой мыши на область предпросмотра и выберите «Проверить». Это откроет инструменты разработчика, где можно вручную скрыть мешающие элементы (рекламу, поп-апы) через CSS, не влияя на оригинальный сайт.

Способ 2: Онлайн-конвертеры и расширения (для сложных страниц) {#sposob-2-onlajn-konvertery}

Если встроенная печать режет таблицы или не подгружает картинки, используйте инструменты, которые делают полный скриншот страницы или эмулируют браузер.

Популярные решения:

  • Расширения для браузера:
    • GoFullPage (Chrome/Edge) — делает полный скриншот страницы и сохраняет его как PDF или изображение. Идеально для лендингов с нестандартной версткой.
    • Print Friendly & PDF — позволяет перед сохранением удалять лишние абзацы и изображения кликом мыши, а также оптимизировать размер файла.
  • Онлайн-сервисы:
    • Сервисы вроде Web2PDFConvert или Sejda. Вы просто вставляете ссылку, и сервер генерирует файл.
    • Плюс: Не нагружают ваш компьютер, часто лучше справляются с тяжелыми JS-скриптами.
    • Минус: Ограничения на количество запросов в день, риск утечки данных (не используйте для конфиденциальных документов).

Способ 3: Профессиональные инструменты (для разработчиков) {#sposob-3-dlya-razrabotchikov}

Для пакетной конвертации, архивации баз знаний или создания отчетов с идеальной типографикой.

ИнструментОсобенностиКому подходит
Puppeteer / PlaywrightБиблиотеки Node.js. Позволяют программно открыть страницу, дождаться загрузки всех скриптов и экспортировать в PDF с точными настройками margin и format.Разработчикам, тестировщикам.
wkhtmltopdfУтилита командной строки на движке WebKit. Хорошо работает со старым HTML/CSS, но может сбоить на современных React/Vue сайтах.Системным администраторам.
PrinceXMLКоммерческий движок. Лучшее в классе качество типографики, поддержка сложных таблиц и математических формул.Издательствам, корпоративному сектору.

Использование Puppeteer требует навыков программирования. Пример команды для сохранения: page.pdf({ path: 'page.pdf', format: 'A4', printBackground: true }).

Частые ошибки и их решение {#chastye-oshibki}

Даже при правильном выборе инструмента могут возникнуть проблемы. Вот как их исправить:

1. Текст разрывается посередине строки или таблицы

Причина: Браузер пытается уместить контент в границы листа A4. Решение:

  • Если вы владелец сайта: добавьте в CSS правило page-break-inside: avoid; для блоков, которые нельзя разрывать (таблицы, карточки товаров).
  • Если вы читатель: попробуйте изменить ориентацию на «Альбомную» в настройках печати.

2. Исчезли цвета и фоны

Причина: Отключена печать фона для экономии ресурсов. Решение: В диалоге печати включите опцию «Фоновая графика» (Background graphics). В CSS это свойство -webkit-print-color-adjust: exact;.

3. Обрезаны длинные таблицы

Причина: Таблица шире, чем лист A4. Решение:

  • В настройках печати уменьшите масштаб (например, до 70%).
  • Используйте альбомную ориентацию.
  • Для разработчиков: сделайте таблицу горизонтально прокручиваемой или адаптируйте ее под print-media через @media print.

4. Пустые места вместо изображений

Причина: Картинки подгружаются лениво (lazy-load) и не успели появиться в момент конвертации. Решение: Прокрутите страницу до самого низа перед вызовом печати, чтобы все изображения загрузились. Или используйте расширения типа GoFullPage, которые ждут полной загрузки.

FAQ {#faq}

Как сохранить страницу с защитой от копирования? Встроенная печать браузера обычно игнорирует запреты на копирование текста. Если сайт блокирует контекстное меню, просто используйте сочетание клавиш Ctrl+P.

Можно ли сохранить интерактивные графики? В статичном PDF интерактивность теряется. Графики сохранятся как изображения. Если важно сохранить данные, лучше экспортировать их в Excel или CSV отдельно.

Почему PDF весит слишком много? Изображения сохраняются в исходном качестве. Чтобы уменьшить вес, используйте онлайн-компрессоры PDF (например, iLovePDF или Smallpdf) после сохранения или выбирайте в настройках печати более низкое качество, если такая опция доступна в вашем браузере/расширении.

Как сохранить только часть статьи? Выделите нужный текст мышью, нажмите Ctrl+P. В некоторых браузерах (например, Chrome) в разделе «Страницы» появится опция «Только выделенный фрагмент» (Selection only).