В статье рассмотрим пример создания "электрической книги" в формате EPUB с помощью конвертора текстовых файлов pandoc.
Pandoc - консольная программа-конвертер, которая может преобразовывать друг в друга форматы markdown, HTML, DocBook, LaTeX. Так же на выходе программы могут быть заданы форматы Microsoft Word DOCX, OpenOffice ODT, EPUB и др.
Нельзя сказать, чтобы утилита pandoc была нужной для всех. Но она может пригодиться в некоторых случаях. Например, рассмотрим случай, когда с помощью pandoc можно собрать файл электронной книги формата EPUB.
Как-то я нашёл в сети оцифрованную книгу А. Вагановой "Основы классического танца". Всё бы и хорошо, но цифровая версия была в формате doc размером 31 мегабайт. Открыть такой файл даже на ноутбуке в LibreOffice оказалось проблематично, не говоря уже о "читалке" на планшете.
Промежуточным решением проблемы стала конвертация через LibreOffice книги в формат HTML. Общий размер HTML-файла с картинками уменьшился в 10 раз до 3,2 мегабайт. Но в книге было много иллюстраций, и поученный результат конвертации в HTML представлял огромное количество файлов, с которыми неудобно было возиться.
Хорошим вариантом для размещения книги в личной цифровой библиотеке было перекодирование HTML-версии единый файл EPUB, являющийся стандартом для цифровых книг. Существует много способов создания EPUB-файла, но в данном случае утилита pandoc оказалась наиболее быстрым решением.
Утилита pandoc имеется в стандартных репозиториях Linux. Также на официальном сайте программы имеются версии для Windows и Mac OS.
Pandoc работает из командной строки. Чтобы конвертировать HTML-файл с картинками в файл формата EPUB, достаточно выполнить команду
pandoc mybook.html -o mybook.epub
И будет создан типовой простенький файл электронной книги с внедрёнными изображениями, который вполне подойдёт для личного чтения на практически любом ридере. Но pandoc гораздо более гибкая программа, и этот простенький файл можно немного улучшить, добавив в него обложку, а также дополнительную метаинформацию, которая будет полезна при работе с личной электронной библиотекой.
Обложка - это какой-нибудь графический файл, созданный в растровом редакторе картинок. Размером обложки-изображения в электронных книгах желательно должен быть не менее 600х800 пикселей. Эта картинка-обложка будет показываться, например, в виде иконки на виртуальных полках в программах-читалках.
Также не помешает внедрить в экземпляр электронной книги файл метаинформации metadata.xml. Это xml-файл с данными, в котором содержится техническая информация о нашей книге: общие сведения об издании, название, автор и т.д. Самый простой пример содержания такого файла:
<dc:title>Основы классического танца</dc:title> <dc:creator opf:role="aut">Ваганова Агриппина</dc:creator> <dc:language>ru</dc:language>
Дополнительные теги метаинформации можно посмотреть в онлайн-справочнике Dublin Core metadata elements.
И теперь при помощи этих файлов и дополнительных опций можно усовершенствовать наш EPUB-файл.
pandoc -S --epub-metadata=metadata.xml -o mybook.epub --epub-cover-image=cover.jpg mybook.html
Где cover.jpg - файл обложки, а опция -S преобразуют входной формат типографский правильный вывод.
После всех манипуляций из файла doc в 31 мегабайт у меня получился готовый файл EPUB 1,8 мегабайт. Удобно и практично.
И возможности pandoc по совершенствованию EPUB-файла на этом не заканчиваются. Например, можно вместо типовой таблицы стилей, которую внедряет pandoc в файл EPUB, внедрить при помощи опции --epub-stylesheet=FILE.css свою таблицу CSS. Соответственно можно при помощи опции --epub-embed-font внедрить в цифровую книгу собственные шрифты, определив в css-файле блок параметров этих шрифтов.
Но, несмотря на гибкие возможности создания EPUB-файлов, не следует ожидать от pandoc чудес вёрстки. Полученные с его помощью файлы подойдут для частного использования. Для создания электронных книг, предназначенных, для распространения, нужны более сложные инструменты.
Михаил АСТАПЧИК
Горячие темы