Самый корректный и эффективный способ производства электронных книг — налаживание их выпуска в издательстве. Это позволяет ускорить их выпуск и в оперативном режиме проконтролировать их качество силами редакций. Среди различных вариантов внутреннего производства (процесс на основе XML, HTML и др.) самый простой — конвертация макетов InDesign в EPUB.

EPUB (от англ. Electronic PUBlication) — формат электронных книг, принятый в качестве базового подавляющим большинством издательств и дистрибьюторов во всём мире. В настоящее время его разработка осуществляется рабочей группой внутри организации World Wide Web Consortium, которая отвечает за разработку основных цифровых форматов для интернета.

Программа Adobe InDesign из пакета программ Creative Cloud обладает достаточно гибкими и мощными средствами для осуществления быстрой и корректной конвертации.

EPUB изнутри

На самом деле EPUB — это ZIP-файл, сжатый особым образом. В этом легко убедиться: измените расширение любого файла .epub на .zip и разархивируйте его любым архиватором. Внутри этого архива вы обнаружите файлы содержимого книги (в формате XHTML), дополнительные файлы иллюстраций, шрифтов и т. д., и обязательные вспомогательные файлы, которые стандарт EPUB требует для описания книги. Можно считать, что EPUB — это веб-сайт, с некоторыми ограничениями и созданный по особым правилам.

Минимальный набор файлов, который входит в EPUB (речь о EPUB 2, пока самом распространённом, который с большей или меньшей гарантией будет прочитан любой программой или устройством, поддерживающим EPUB) , должен быть следующим:

.
├── mimetype
├── META-INF
│   └── container.xml
└── OEBPS
    ├── content.opf
    ├── toc.ncx
    ├── Text
    ├── Styles
    ├── Fonts
    ├── Images
    ├── Video
    ├── Audio
    └── Misc

Ключевой файл content.opf

Content.opf — главный файл EPUB, в котором хранятся метаданные книги, опись всего содержимого EPUB и определяет для программы чтения последовательность воспроизведения книги. Он состоит из трёх (EPUB3) или четырёх (EPUB2) разделов:

<metadata>…</metadata> — метаданные (или выходные данные) книги в формате Dubline Core, то есть язык, название книги, :её автор, аннотация, идентификатор, название файла обложки:

<?xml version="1.0" encoding="utf-8"?>
<package version="2.0" unique-identifier="BookId" xmlns="<http://www.idpf.org/2007/opf>">
<metadata xmlns:opf="<http://www.idpf.org/2007/opf>" xmlns:dc="<http://purl.org/dc/elements/1.1/>">
  <dc:language>ru</dc:language>
  <dc:title>Пир во время чумы</dc:title>
  <dc:creator opf:role="aut">Александр Пушкин</dc:creator>
  <dc:description>Эта маленькая пьеса, состоящая из одной сцены, является переводом фрагмента из пьесы шотландского поэта Джона Вильсона «Чумной город», посвящённой лондонской чуме 1665 года.</dc:description>
  <meta content="0.9.14" name="Sigil version" />
  <dc:date xmlns:opf="<http://www.idpf.org/2007/opf>" opf:event="modification">2020-03-26</dc:date>
  <dc:identifier opf:scheme="UUID" id="BookId">urn:uuid:3599715c-ad56-4270-b21c-07c9c0ce3d31</dc:identifier>
  <meta name="cover" content="cover.jpg" />
</metadata>

<manifest>…</manifest> — полная опись файлов внутри EPUB:

<manifest>
  <item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml"/>
  <item id="cover.xhtml" href="Text/cover.xhtml" media-type="application/xhtml+xml"/>
  <item id="cover.jpg" href="Images/cover.jpg" media-type="image/jpeg"/>
  <item id="title.xhtml" href="Text/title.xhtml" media-type="application/xhtml+xml"/>
  <item id="text.xhtml" href="Text/text.xhtml" media-type="application/xhtml+xml"/>
  <item id="styles.css" href="Styles/styles.css" media-type="text/css"/>
</manifest>

<spine>…</spine> — «корешок», то есть последовательность воспроизведения текстовых файлов:

<spine toc="ncx">
  <itemref idref="cover.xhtml"/>
  <itemref idref="title.xhtml"/>
  <itemref idref="text.xhtml"/>
</spine>

<guide>…</guide> — «путеводитель по книге», то есть описание назначения ключевых текстовых файлов:

<guide>
  <reference type="cover" title="Cover" href="Text/cover.xhtml"/>
  <reference type="title-page" title="Title Page" href="Text/title.xhtml"/>
  <reference type="text" title="Text" href="Text/text.xhtml"/>
</guide>