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

💻 IT и кодОбновлено: 13 июля 2026 г.4 мин чтения
У вас есть сотни TXT-файлов с книгами, которые не открываются на ридере? Конвертация в EPUB — единственный способ получить корректную структуру, оглавление и работающие закладки. Разберём 7 способов: от онлайн-сервисов до кастомных скриптов на Python.
⚡ Коротко: главное
  • Calibre с параметром --epub-flatten генерирует EPUB, совместимый с любыми ридерами, и занимает 2–5 секунд на файл.
  • Базовая конвертация через Pandoc даёт файл размером на 30% меньше, чем через Calibre, но без автоматического оглавления.
  • Онлайн-конвертер TXT в EPUB (наш сервис) сохраняет кодировку UTF-8 и генерирует обложку за 1 минуту — без установки ПО.
  • Проблема кириллицы в EPUB возникает при конвертации через Linux-утилиты: обязательно указывать --charset=utf-8.
  • Размер EPUB не должен превышать 10 МБ для нормальной загрузки на PocketBook и Kindle; иначе ридер зависает.

1. Быстрый старт: онлайн-конвертер TXT в EPUB

Если нужно сконвертировать один-два файла без возни с настройками, используйте TXT в EPUB на нашем сайте. Он автоматически определяет кодировку (UTF-8, CP1251, KOI8-R), разбивает текст на главы по пустым строкам и создаёт оглавление.

  • Скорость: до 50 страниц — 10-15 секунд.
  • Выходной формат: EPUB 3.0 с поддержкой CSS.
  • Лимит: 100 МБ на файл.

Важно: если в исходном TXT нет чётких разделителей глав (более одной пустой строки), конвертер может не создать корректное оглавление. Для сложных случаев используйте локальные инструменты.

2. Надёжный локальный конвертер — Calibre (ebook-convert)

Calibre — стандарт де-факто для работы с электронными книгами. Утилита ebook-convert есть в любой ОС.

ebook-convert input.txt output.epub \
  --input-encoding utf-8 \
  --chapter-mark pagebreak \
  --chapter '//h:h1' \
  --base-font-size 12

3. Pandoc — лёгкая конвертация без графики

Pandoc конвертирует TXT в EPUB без лишних стилей, что даёт минимальный размер файла.

pandoc input.txt -o output.epub \
  --epub-chapter-level=2 \
  --metadata title="Моя книга" \
  --metadata author="Автор" \
  --css style.css

Опции:

  • --epub-chapter-level=2 — уровень заголовков, с которого начинается глава (1 — h1, 2 — h2).
  • --metadata — автор, заголовок и т.д.
  • --css — пути к CSS-стилям (опционально).
Edge-case: Pandoc по умолчанию не обрабатывает пустые строки как разделители глав. Добавьте --epub-subdirectory=OEBPS для корректной структуры.
Этапы конвертации TXT в EPUB
  1. 1
    Проверить кодировку

    Убедитесь, что TXT сохранён в UTF-8 без BOM.

  2. 2
    Выбрать инструмент

    Онлайн-конвертер (быстро) или Calibre/Pandoc (гибко).

  3. 3
    Настроить оглавление

    Добавьте маркеры глав или настройте XPath.

  4. 4
    Запустить конвертацию

    Проверьте что все параметры переданы корректно.

  5. 5
    Проверить результат

    Откройте EPUB в приложении-ридере (например, FBReader).

  6. 6
    Исправить ошибки

    При иероглифах — пересохранить TXT в UTF-8.

Оптимальный алгоритм для автоматической конвертации.

4. python + ebooklib — полный контроль над кодом

Для программной конвертации используйте библиотеку ebooklib.

from ebooklib import epub
book = epub.EpubBook()
book.set_identifier('id_12345')
book.set_title('Моя книга')
book.set_language('ru')

# Добавляем стиль
style = 'body { font-family: serif; }'
nav_css = epub.EpubItem(uid="style", file_name="style.css", media_type="text/css", content=style.encode())
book.add_item(nav_css)

# Читаем TXT
with open('input.txt', 'r', encoding='utf-8') as f:
    text = f.read()

# Создаём главу (первый абзац как заголовок)
lines = text.split('\n\n')
for i, chunk in enumerate(lines):
    chapter = epub.EpubHtml(title=f'Глава {i+1}', file_name=f'chap_{i+1}.xhtml', lang='ru')
    chapter.content = f'

Глава {i+1}

{chunk}

' book.add_item(chapter) book.toc.append(epub.Link(f'chap_{i+1}.xhtml', f'Глава {i+1}', f'chap_{i+1}')) book.add_item(epub.EpubNcx()) book.add_item(epub.EpubNav()) epub.write_epub('output.epub', book, {})

Рекомендация: проверьте кодировку входного файла — chardet или codecs.

Чек-лист: идеальная конвертация

0 из 8

5. Структурирование текста: правильное оглавление

EPUB без оглавления — просто zip-архив с HTML. В ридерах (Kindle, PocketBook) навигация обязательна.

  • Calibre: использует XPath //h:h1 для поиска заголовков.
  • Pandoc: по умолчанию создаёт оглавление из заголовков Markdown (уровень 1-2).
  • Ручная вёрстка: в Python через epub.Link.

Если в исходном TXT нет заголовков, добавьте строку вида # Глава 1 (Markdown) перед каждой частью.

6. Частые ошибки и их решение

Ошибки при конвертации делятся на три категории.

ПараметрЗначениеОписание
--input-encodingutf-8 (cp1251)Кодировка входного TXT
--chapter-markpagebreakРазрыв страницы перед главой
--chapter//h:h1XPath для заголовка главы
--base-font-size12Базовый размер шрифта в pt
ОшибкаПричинаРешение
Иероглифы в EPUBКодировка CP1251 определена как UTF-8Укажите --input-encoding cp1251 или пересохраните TXT в UTF-8
Нет оглавленияЗаголовки не распознаныДобавьте # перед заголовком или настройте XPath
EPUB не открывается на KindleОтсутствует навигационный файл (nav)Calibre автоматически исправляет; или конвертируйте через KindleGen

7. Обратная конвертация и другие форматы

Если нужно изменить готовый EPUB, используйте наши инструменты:

  • EPUB в FB2 — для импорта в AlReader.
  • EPUB в PDF — для печати.
  • EPUB в TXT — если нужно вернуть исходный текст.
  • FB2 в EPUB — обратная конвертация.

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

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

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

Как сконвертировать TXT в EPUB на телефоне?

Используйте онлайн-конвертер TXT в EPUB через браузер — загрузите файл, скачайте результат. Либо установите приложение EBook Converter на Android.

Как сделать оглавление в EPUB из TXT?

Calibre автоматически создаёт оглавление по заголовкам или . В Pandoc укажите --epub-chapter-level=2. В онлайн-конвертере оглавление строится по пустым строкам между главами.

Почему после конвертации в EPUB появляются иероглифы?

Неверно определена кодировка исходного TXT. Сохраните файл в UTF-8 (через Notepad++ или любой редактор) и повторите конвертацию.

Как уменьшить размер EPUB?

Используйте Pandoc без CSS-стилей (минимальный размер). Удалите лишние изображения. Сжимайте HTML через gulp-htmlmin перед упаковкой.

Чем конвертировать TXT в EPUB с сохранением форматирования?

Используйте Calibre с CSS-стилями. Можно задать отступы, шрифты и цвета через --extra-css. Или вручную отредактируйте XHTML в архиве EPUB.

Как открыть TXT в EPUB на Kindle?

Сконвертируйте в EPUB, затем используйте Calibre для конвертации в MOBI или AZW3, либо отправьте на e-mail Kindle.

Какая максимальная длина строки в TXT для корректной конвертации?

Жёстких ограничений нет, но длинные строки (>80 символов) могут не переноситься в EPUB. Рекомендуется разбивать текст на абзацы до 60-70 символов.

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

  1. Справка Calibre — ebook-convert
  2. Документация Pandoc — EPUB
  3. Документация ebooklib
  4. Спецификация EPUB 3.3 (W3C)
  5. ГОСТ 7.0.96-2016 (электронные книги)

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