HTML в EPUB: конвертация без потери структуры

💻 IT и кодОбновлено: 13 июля 2026 г.6 мин чтения
Вы сверстали статью, лендинг или документацию в HTML, но ридеры Kindle, PocketBook и Apple Books требуют EPUB. Конвертация HTML в EPUB — не просто смена расширения: нужно корректно обработать стили, изображения, метаданные и структуру. В этой статье — рабочие способы от Pandoc до онлайн-конвертера, с примерами кода и разбором типичных ошибок.
⚡ Коротко: главное
  • Pandoc — лучший бесплатный конвертер: команда из трёх строк и поддержка CSS, MathML и метаданных.
  • Онлайн-конвертер HTML в EPUB на нашем сайте справляется за 10 секунд, не требует установки и сохраняет структуру.
  • Без указания языка (lang) и заголовков (h1…h6) EPUB не проходит валидацию — ридеры могут аварийно закрывать книгу.
  • Изображения в HTML должны быть с абсолютными путями или встроены как base64, иначе EPUB теряет картинки.
  • EPUB — это ZIP-архив с XHTML и CSS: внутренняя структура жёстко задана, любое отклонение ломает навигацию.

Что такое EPUB и чем он отличается от HTML

EPUB — открытый формат электронных книг, основанный на XHTML, CSS и XML. В отличие от HTML-страницы, EPUB — это ZIP-архив со строгой структурой:

  • META-INF/container.xml — указание на корневой файл;
  • OEBPS/content.opf — метаданные (автор, название, язык) и манифест всех файлов;
  • OEBPS/toc.ncx — оглавление;
  • OEBPS/Text/ — XHTML-файлы с контентом;
  • OEBPS/Styles/ — CSS;
  • OEBPS/Images/ — изображения.

При конвертации HTML в EPUB нужно не просто переименовать файл, а упаковать его в эту структуру. Если вы возьмёте сырой HTML и просто смените расширение на .epub, ни один ридер его не откроет.

Ключевое отличие: EPUB — это набор строго оформленных XHTML-документов, сжатых в ZIP с предопределённой иерархией папок.

Способ 1: Конвертация через Pandoc (командная строка)

Pandoc — самый мощный бесплатный конвертер, работающий на Windows, macOS и Linux. Установите его по инструкции с официального сайта. Базовая команда:

pandoc input.html -o output.epub

Но для качественного результата добавьте опции:

pandoc input.html \
  --metadata title="Моя книга" \
  --metadata author="Иван Иванов" \
  --metadata lang="ru-RU" \
  --epub-cover-image=cover.jpg \
  --css=style.css \
  -o output.epub

Описание ключевых параметров:

ПараметрНазначениеПример
--metadata titleЗаголовок книги"Моя книга"
--metadata authorАвтор"Иван Иванов"
--metadata langЯзык (код BCP 47)"ru-RU"
--epub-cover-imageПуть к обложкеcover.jpg
--cssПуть к CSS-файлуstyle.css

Важно! Если ваш HTML содержит ссылки на локальные изображения (например, <img src="images/photo.png">), Pandoc автоматически включит их в EPUB. Абсолютные пути (C:\\ или http://) не работают — используйте относительные.

Способ 2: Онлайн-конвертер без установки

Если не хотите возиться с командной строкой, используйте HTML в EPUB на нашем сайте. Он подходит для небольших файлов (до 50 МБ) и не требует регистрации. Просто загрузите HTML-файл или вставьте код в текстовое поле — через 10 секунд получите готовый EPUB.

Алгоритм работы:

  1. Загрузите HTML-файл или вставьте код;
  2. (Опционально) Загрузите CSS и изображения;
  3. Укажите метаданные (название, автор, язык);
  4. Нажмите «Конвертировать» — скачайте EPUB.

Конвертер автоматически добавляет обложку (если не загружена — берёт первый скриншот), генерирует оглавление по заголовкам h1-h3 и применяет CSS. Поддерживаются кириллица, таблицы, списки и MathML.

После конвертации можете дополнительно преобразовать EPUB в другие форматы: EPUB в PDF, EPUB в FB2 или EPUB в TXT.

Онлайн-конвертер не сохраняет данные на сервере — все файлы удаляются через час. Для приватных документов используйте Pandoc локально.

Способ 3: Ручная сборка EPUB (для контроля)

Если нужен полный контроль над структурой, соберите EPUB вручную. Создайте папку с именем книги, внутри — папки META-INF и OEBPS. В META-INF поместите container.xml:

<?xml version="1.0" encoding="UTF-8"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
  <rootfiles>
    <rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/>
  </rootfiles>
</container>

В OEBPS создайте content.opf — мозг EPUB:

<package xmlns="http://www.idpf.org/2007/opf" version="2.0" unique-identifier="BookId">
  <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
    <dc:title>Моя книга</dc:title>
    <dc:creator>Иван Иванов</dc:creator>
    <dc:language>ru-RU</dc:language>
  </metadata>
  <manifest>
    <item id="chapter1" href="Text/chapter1.xhtml" media-type="application/xhtml+xml"/>
    <item id="style" href="Styles/style.css" media-type="text/css"/>
  </manifest>
  <spine toc="ncx">
    <itemref idref="chapter1"/>
  </spine>
</package>

Создайте toc.ncx для оглавления, XHTML-файлы в папке Text, CSS в Styles. Затем запакуйте всё в ZIP с расширением .epub. Проверьте валидацию через W3C EPUB Validator.

Как конвертировать HTML в EPUB: пошаговая инструкция
  1. 1
    Подготовка HTML

    Проверьте корректность HTML5: закройте теги, добавьте DOCTYPE, lang. Удалите скрипты и iframe.

  2. 2
    Настройка метаданных

    Укажите название, автора, язык. Без этого EPUB не пройдёт валидацию.

  3. 3
    Выбор инструмента

    Pandoc для гибкости, онлайн-конвертер для простоты, ручная сборка для контроля.

  4. 4
    Конвертация

    Запустите команду Pandoc или загрузите файл в онлайн-конвертер. Дождитесь завершения.

  5. 5
    Валидация EPUB

    Используйте validator.w3.org или встроенную проверку онлайн-конвертера. Исправьте ошибки.

  6. 6
    Тестирование на ридерах

    Откройте на Kindle, PocketBook и Apple Books — проверьте отображение и оглавление.

Универсальный алгоритм для любого метода конвертации.

Подводные камни: что ломает конвертацию

Вот типичные ошибки, из-за которых EPUB не открывается или выглядит нечитаемо:

  • Отсутствует язык в метаданных — ридер Kindle может показывать битые символы. Всегда указывайте lang="ru-RU".
  • Неверные пути к изображениям — используйте относительные пути (например, Images/photo.jpg), иначе картинки не отобразятся.
  • Слишком широкая вёрстка — EPUB адаптируется под экран; фиксированная ширина в пикселях (например, width: 1200px) ломает чтение. Используйте относительные единицы.
  • Скрипты и iframe — EPUB не поддерживает JavaScript и встроенные фреймы. Удалите их перед конвертацией.
  • Таблицы без thead — некоторые ридеры (PocketBook) неправильно отображают таблицы без явных <thead> и <tbody>.

Как отладить: откройте EPUB в браузере (Chrome — просто перетащите файл) — если отображается нормально, проблема в ридере. Используйте валидатор W3C: он укажет на ошибки в XML-структуре.

Перед публикацией всегда тестируйте на двух-трёх ридерах (Kindle, PocketBook, Apple Books) — они по-разному интерпретируют CSS.

Чеклист: готовы ли вы публиковать EPUB?

0 из 10

Частные случаи: что делать с разметкой и CSS

Разберём сложные сценарии конвертации:

1. Математические формулы. Pandoc поддерживает MathML: вставьте формулу в HTML как <math>... или используйте синтаксис LaTeX внутри $...$ (Pandoc сам преобразует). Если конвертер не поддерживает MathML, формулы потеряются — используйте изображения.

2. Сноски и ссылки. Pandoc преобразует <a href="#fn1"> в корректные сноски EPUB. В онлайн-конвертере сноски тоже работают, если внутри <ol> с class="footnotes".

3. Много файлов. Если у вас несколько HTML-страниц (главы), Pandoc может обработать список:

pandoc chapter1.html chapter2.html -o book.epub

Он объединит их в один EPUB, сохранив последовательность. Для разделения на главы используйте заголовки h1 — каждый h1 станет новой главой.

4. CSS-стили. Не все CSS-свойства поддерживаются в EPUB. Избегайте:

  • position: fixed / absolute;
  • overflow: hidden;
  • z-index;
  • float (некорректно в некоторых ридерах).

Безопасные: font-size, color, margin, padding, line-height, text-align. Лучше использовать встроенные стили или отдельный CSS, указанный в content.opf.

Сравнение инструментов конвертации

В таблице — сравнение трёх основных методов конвертации HTML в EPUB по критериям, важным для разработчика.

КритерийPandocОнлайн-конвертерРучная сборка
СложностьСредняя (CLI)Низкая (UI)Высокая (ручное редактирование XML)
КачествоОтличное (гибкие настройки)Хорошее (автоматика)Полный контроль
Поддержка CSSПолнаяБазовая (до 10 стилей)Полная
ИзображенияАвтоматическиЗагрузка отдельноВручную
Размер файлаЛюбойДо 50 МБЛюбой
ВалидацияНет встроеннойАвтоматическаяСамостоятельно

Вывод: для быстрой конвертации используйте HTML в EPUB онлайн, для частых задач — Pandoc, для единоразовой сложной книги — ручную сборку.

Автоматизация и батчи: как конвертировать пачкой

Если у вас десятки HTML-файлов, автоматизируйте процесс с помощью скрипта. Пример для bash (Linux/macOS):

for f in *.html; do
  pandoc "$f" -o "${f%.html}.epub" \
    --metadata title="${f%.html}" \
    --metadata lang="ru-RU"
done

Для Windows PowerShell:

Get-ChildItem -Filter *.html | ForEach-Object {
  pandoc $_.FullName -o ($_.BaseName + ".epub") \
    --metadata title=$($_.BaseName) \
    --metadata lang="ru-RU"
}

Если нужно объединить все файлы в одну книгу:

pandoc *.html -o combined.epub \
  --metadata title="Сборник" \
  --metadata author="Коллектив"

Важно: порядок глав — по алфавиту файлов. Переименуйте файлы с числовым префиксом: 01-chapter.html, 02-chapter.html и т.д.

Для тех, кому нужно конвертировать EPUB в другой формат (например, для FB2-ридера), используйте наши инструменты: EPUB в FB2 или EPUB в TXT.

🧮 Посчитайте сами — инструменты по теме

🧭 Разделы по теме

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

Можно ли конвертировать HTML в EPUB онлайн бесплатно?

Да, на нашем сайте есть бесплатный онлайн-конвертер «HTML в EPUB» — без регистрации, с поддержкой файлов до 50 МБ. Результат приходит в течение 10 секунд.

Как добавить обложку в EPUB при конвертации из HTML?

В Pandoc используйте флаг --epub-cover-image=cover.jpg. В онлайн-конвертере загрузите изображение отдельно. Если обложка не указана, конвертер автоматически создаст её из первого заголовка.

Что делать, если после конвертации пропали картинки?

Проверьте пути к изображениям: они должны быть относительными (например, images/photo.png), а не абсолютными. В онлайн-конвертере загрузите изображения вместе с HTML. В ручной сборке укажите изображения в манифесте content.opf.

Как конвертировать HTML в EPUB с сохранением стилей?

Pandoc поддерживает CSS через флаг --css=style.css. Все стили, совместимые с EPUB (без position: fixed и overflow), будут применены. Онлайн-конвертер использует ваш CSS, если он загружен.

Чем отличается EPUB 2 от EPUB 3?

EPUB 3 поддерживает MathML, SVG и более сложные стили, но менее совместим со старыми ридерами (Kindle до 2020). Для большинства задач подходит EPUB 2. Pandoc создаёт EPUB 3 по умолчанию, онлайн-конвертер — EPUB 2.

Можно ли конвертировать много HTML-файлов в один EPUB?

Да, Pandoc позволяет передать несколько файлов в одной команде: pandoc 1.html 2.html -o book.epub. Он объединит их в одну книгу. Порядок определяется порядком файлов в команде.

Как проверить, что EPUB не содержит ошибок?

Используйте официальный валидатор W3C (https://validator.w3.org/). Загрузите файл — он покажет все ошибки XML и структуры. В онлайн-конвертере встроена автоматическая валидация.

Как конвертировать HTML в EPUB для Kindle?

Kindle поддерживает EPUB только через конвертацию в AZW3 или MOBI. Используйте Pandoc с флагом -t epub3 или конвертер «EPUB в MOBI» после получения EPUB. Также можно сразу использовать HTML в EPUB, а затем применить формат-конвертер.

Источники и нормативные документы

  1. Pandoc manual: EPUB output
  2. W3C EPUB Validator
  3. MDN: EPUB overview

Ещё по теме «IT и код»