Как создать электронную книгу в формате FB2

Файл FB2, который отказывается открываться в читалке, почти всегда содержит ошибку в XML-разметке — незакрытый тег, неверную кодировку или отсутствующий обязательный блок <description>. Формат FB2 (FictionBook) — это, по сути, обычный XML-документ, и создать его можно тремя путями: вручную в текстовом редакторе, через специализированный редактор или конвертацией из DOCX/EPUB.

Ниже разберём структуру формата, рабочие инструменты и типичные ошибки, из-за которых книга не проходит валидацию. Статья подойдёт и тем, кто собирает собственную книгу для личной библиотеки, и тем, кто готовит файл к публикации.

Что представляет собой формат FB2

FB2 хранит текст книги вместе с метаданными в одном XML-файле. Кодировка — UTF-8 или windows-1251, изображения (обложка, иллюстрации) встраиваются прямо в файл в виде Base64-данных. За счёт этого книга остаётся единым документом, который удобно хранить и передавать.

Корневой элемент документа — <FictionBook>. Внутри него располагаются обязательные блоки: <description> с метаданными и один или несколько <body> с текстом книги. Дополнительно могут присутствовать блоки <binary> с картинками.

Структура файла: обязательные элементы

Минимальный каркас книги выглядит так:

<?xml version="1.0" encoding="utf-8"?>

<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0">

<description>

<title-info>

<author><first-name>Иван</first-name><last-name>Петров</last-name></author>

<book-title>Название книги</book-title>

<lang>ru</lang>

</title-info>

</description>

<body>

<section>

<title><p>Глава 1</p></title>

<p>Текст первого абзаца.</p>

</section>

</body>

</FictionBook>

Обратите внимание на пространство имён в атрибуте xmlns — без него валидаторы и часть читалок не распознают документ как FB2. Текст внутри <body> разбивается на <section> (главы), абзацы оборачиваются в <p>, а заголовок главы — в <title>.

Спецсимволы в тексте нужно экранировать: амперсанд пишется как &amp;, знак «меньше» — как &lt;. Если вставить «голый» амперсанд, XML-парсер выдаст ошибку.

Способ 1: ручное создание в текстовом редакторе

Этот вариант подходит для коротких текстов и для понимания того, как формат устроен изнутри. Вам понадобится редактор с подсветкой XML — например, Notepad++ или Visual Studio Code.

  • 📝 Создайте новый файл и сохраните его с расширением .fb2 в кодировке UTF-8 без BOM.
  • 🧩 Вставьте каркас документа из примера выше и заполните блок <title-info>: автор, название, язык.
  • 📖 Разбейте текст на главы, обернув каждую в <section>, а абзацы — в <p>.
  • 🖼️ Для обложки добавьте блок <binary> с изображением в Base64 и ссылку на него в <coverpage>.
  • ✅ Проверьте файл валидатором перед тем, как открывать его в читалке.

☑️ Проверка FB2 перед публикацией

Выполнено: 0 / 5
⚠️ Внимание: если копируете текст из Word или браузера, в нём могут остаться невидимые символы и «умные кавычки», которые часть парсеров обрабатывает некорректно. Перед сборкой прогоните текст через очистку форматирования.

Способ 2: специализированные редакторы

Для длинных книг ручная разметка утомительна, и здесь выручают программы с визуальным интерфейсом. Классический инструмент для Windows — FictionBook Editor: он показывает текст как в обычном редакторе, а XML-разметку формирует автоматически. Альтернатива — FBE (Fiction Book Editor) и онлайн-редакторы, работающие в браузере.

Общий порядок работы в таких программах одинаковый: импортируете текст из TXT или DOCX, программа сама разбивает его на абзацы, затем вы вручную размечаете главы, эпиграфы и стихи, заполняете карточку книги и сохраняете результат. Перед сохранением проверьте в настройках, что выбран формат именно FB2, а не промежуточный формат редактора.

📊 Каким способом вы создаёте FB2?
Вручную в текстовом редакторе
В FictionBook Editor
Конвертирую из DOCX/EPUB
Использую онлайн-сервисы

Способ 3: конвертация из других форматов

Если книга уже набрана в Word или существует в виде EPUB, разумнее сконвертировать её, а не верстать заново. Популярный вариант — Calibre: добавьте книгу в библиотеку, выберите «Конвертировать книги» и укажите выходной формат FB2. Программа перенесёт текст, оглавление и обложку.

Конвертеры не идеальны: сложная вёрстка (таблицы, сноски, врезки) может перенестись с искажениями. После конвертации откройте файл и проверьте структуру глав, а также заполните метаданные — Calibre позволяет редактировать их до конвертации, что удобнее.

СпособСложностьКонтроль над разметкойДля чего подходит
Ручной (XML)ВысокаяПолныйКороткие тексты, обучение
FictionBook EditorСредняяВысокийПолноценные книги с главами
Calibre (конвертация)НизкаяОграниченныйПеревод готовых книг в FB2
Онлайн-конвертерыНизкаяМинимальныйБыстрый разовый результат

Добавление обложки и иллюстраций

Изображения в FB2 не лежат рядом с файлом — они кодируются в Base64 и помещаются в блоки <binary>. Каждой картинке присваивается id и тип содержимого, например content-type="image/jpeg". На обложку ссылаются из блока <coverpage> внутри описания, а на иллюстрации в тексте — через тег <image> с атрибутом ссылки на соответствующий id.

Имейте в виду: каждая встроенная картинка увеличивает размер файла примерно на треть от исходного из-за кодирования. Поэтому изображения перед вставкой стоит сжать до разумного разрешения — для экрана читалки огромные фотографии не нужны.

Как получить Base64 из картинки

Откройте изображение в любом онлайн-кодировщике Base64 или выполните в терминале команду base64 cover.jpg. Скопируйте полученную строку внутрь тега binary, указав уникальный id, например cover.jpg, и content-type="image/jpeg".

Валидация и типичные ошибки

Проверить файл можно встроенной проверкой FictionBook Editor или открыв его в браузере — если XML синтаксически неверен, браузер покажет строку с ошибкой. Также существуют онлайн-валидаторы схемы FB2.

  • ❌ Незакрытый или перекрёстный тег — например, <p>текст</section> без закрывающего </p>.
  • 🔠 Неверная кодировка: файл сохранён в windows-1251, а в шапке указан UTF-8 (или наоборот).
  • 🚫 Неэкранированные символы & и < в тексте.
  • 🗂️ Отсутствует обязательный блок <description> или <title-info>.
  • 🔗 Ссылка на изображение указывает на id, которого нет среди блоков <binary>.
⚠️ Внимание: некоторые читалки открывают даже формально невалидный FB2, но при этом «теряют» главы или не показывают обложку. Если книга отображается странно — первым делом прогоните её через валидатор, а не переделывайте текст.

Самая частая причина «битого» FB2 — несовпадение кодировки файла с кодировкой, указанной в первой строке XML-декларации. Проверяйте её в первую очередь.

Проверка готовой книги на устройствах

Финальный этап — открыть файл там, где его будут читать. Проверьте книгу минимум в двух программах: настольной читалке (например, CoolReader или FBReader) и на смартфоне или электронной книге. Убедитесь, что оглавление кликабельно, главы идут в правильном порядке, обложка отображается в библиотеке, а переносы и кавычки выглядят корректно.

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

Часто задаваемые вопросы

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

FB2 — одиночный XML-файл, ориентированный на художественную литературу. EPUB — это ZIP-архив из нескольких XHTML-файлов, таблиц стилей и ресурсов, он гибче в вёрстке. Для большинства русскоязычных читалок и библиотек FB2 остаётся стандартом де-факто.

Можно ли сделать FB2 из PDF?

Технически да, через конвертеры, но результат зависит от качества исходника. Если PDF содержит сканированные страницы без текстового слоя, сначала потребуется распознавание (OCR), а затем ручная вычитка — автоматика ошибается на переносах и колонках.

Почему читалка не показывает обложку?

Проверьте три вещи: есть ли блок <coverpage> внутри <title-info>, совпадает ли id в ссылке с id блока <binary> и корректно ли указан content-type изображения. Несовпадение любого из этих элементов приводит к «пустой» обложке.

Какую кодировку выбрать: UTF-8 или windows-1251?

Рекомендуется UTF-8 — её корректно понимают все современные программы и устройства. Windows-1251 встречается в старых файлах, но при её использовании критично, чтобы кодировка в XML-декларации совпадала с реальной кодировкой файла.

Нужно ли сжимать FB2 в ZIP?

Сам формат этого не требует, но многие библиотеки и читалки поддерживают файлы вида .fb2.zip — это обычный FB2, упакованный в архив для экономии места. Такой вариант открывается большинством программ без предварительной распаковки.