Среди всех форматов электронных книг особое место занимают те, которые основаны на простом тексте и языке XML. Это замечательный язык, позволяющий работать со смысловой структурой документа, используя собственную разметку.
Мы рассмотрим только два основанных на XML формата электронных книг – FictionBook и ePUB. Дело в том, что они не привязаны к какой-либо конкретной фирменной платформе и достаточно универсальны: большинство современных ридеров поддерживает как минимум один из них. Соответственно, освоив работу с ними, вы сможете обеспечить себя эксклюзивным электронным чтивом практически на любом устройстве.
Для изготовления книг FB2 и ePUB финансовых расходов не понадобится, поскольку для решения этих задач предлагается немало фриварных продуктов.
Ориентирующиеся на XML форматы обладают своими достоинствами и недостатками. Главное достоинство – компактность. Обычный текст, да еще сжатый архиватором, занимает минимум пространства на носителе. Текстовые форматы выигрывают в легкости освоения и реализации, не требуют каких-либо сложных программных библиотек, что упрощает разработку приложений. Они обычно легко поддаются конвертированию и изменению. XML позволяет лучше выразить логическую структуру документа.
Есть и еще один нюанс, не вполне явный для большинства пользователей. Файлы электронных книг надо как-то упорядочивать. Другими словами, для наших электронных книг нужны электронные библиотеки и архивы. Если не вдаваться в детали, с технической точки зрения от банального файлового массива-свалки они отличаются наличием четкой смысловой структуры в сортировке и возможностью удобного поиска по различным признакам.
Реализовать такие сервисы без метаинформации, содержащей описания отдельных книг, и различных вспомогательных данных, раскрывающих их содержание, не получилось бы. В массе своей владельцы частных электронных библиотек не могут позволить себе большие трудозатраты, поэтому максимальная автоматизация процессов – отличное подспорье. XML-форматы прекрасно подходят для решения такой задачи. Если электронная книга сверстана по правилам, она уже содержит все необходимые сведения. Их можно легко извлечь из разметки и включить в базы электронной библиотеки практически без участия человека.
Основные недостатки таких форматов также связаны с их текстовой природой. Самое неприятное – это некоторые ограничения по верстке. Если тот же PDF позволяет очень точно управлять внешним видом документов, то у основанных на XML форматов такие возможности крайне скудные. Радует, что для изготовления книг в форматах FictionBook и ePUB финансовых расходов, скорее всего, не понадобится, поскольку для решения этих задач предлагается немало свободно распространяемых продуктов, о которых и пойдет речь ниже.
Работаем с форматом FictionBook
Читать электронные книги можно и не задумываясь об их внутреннем устройстве. Если же вы собираетесь их создавать, то хотя бы минимальные знания о структуре форматов становятся насущной необходимостью. Разработка формата FictionBook не осенена присутствием каких-либо крупных организаций. Он как раз таки демонстрирует, что даже в сфере IT-стандартов свое слово могут сказать индивидуальные разработчики, главное – найти нужную людям нишу. Дело в том, что у этого формата есть конкретный автор, которого зовут Дмитрий Грибов.
Сразу скажем, что данный формат отвечает в первую очередь не за внешний вид документов, а за их структуру. Задача FictionBook – четко выделить и обозначить отдельные части книги. Остальные тактические задачи возлагаются на программы чтения, которые вольны раскрашивать FictionBook в цвета собственных радуг.
Как и положено потомку XML, файл в формате FictionBook содержит собственно текст и разметку, в которой обязательно присутствует метаинформационный блок. Его наличие позволяет автоматизировать каталогизацию, что весьма полезно при создании крупных электронных библиотек.
Что касается мультимедиа, то здесь все достаточно скромно. Поскольку это формат текстовый, про сложную верстку можно сразу забыть. Это не решение для каких-нибудь легкомысленных комиксов. Только буквы, только хардкор! Не случайно значительный процент книг в формате FB2 – это произведения художественной литературы, публицистика, учебная литература и другие подобные публикации, которые состоят преимущественно из простого сплошного текста с небольшим количеством иллюстраций.
Как мы уже говорили, FictionBook – это, по сути, удачная частная инициатива. Обратная сторона такого происхождения – не все брендовые читалки способны понимать FB2 напрямую. Посему на практике периодически может возникнуть необходимость его конвертирования. Простота формата в этом случае играет нам на руку, и преобразование файлов FB2, как правило, не составляет труда. Она же существенно облегчает и создание новых книг. В принципе, сверстать файл FictionBook можно хоть в «Блокноте», подойдет любой текстовый редактор, понимающий XML. При этом каких-либо глубоких познаний в области XML не требуется, поскольку количество тегов невелико.
Сверстать электронную книгу, которую предполагается сохранить как FictionBook, можно с помощью обычного офисного текстового редактора. При подготовке нужно только иметь в виду ограничения формата: можно не терять время на украшательства, поскольку они все равно не сохранятся. А вот над чем стоит серьезно поработать, так это над качеством собственно текста (особенно если он получен оцифровкой и распознаванием), а также над структурированием книги. Не ленитесь применять стили заголовков – они будут использованы при построении структуры.
Готовые файлы в формате DOC или RTF можно конвертировать в FictionBook с помощью программы FictionBook Tools (home.arcor.de/fb.tools). Она работает «по площадям», преобразуя все поддерживаемые текстовые документы, найденные в указанном каталоге. Взаимодействие с приложением экстремально упрощено. После распаковки скачанного архива запускаем файл Doc2fb.exe. Понадобится указать путь к папке с целевыми файлами, а также, при необходимости, провести тонкую настройку. Из полезного там – автоматическое удаление пустых строк исходного текста, а также редактор масок, по которым программа опознает в тексте исходного файла сноски и примечания.
Следующий заслуживающий внимания конвертер – программа Any to FB2 (www.gribuser.ru/xml/fictionbook). Основное отличие этого решения от предыдущего – поддержка большего числа форматов: кроме RTF, DOC и WRI данная софтина хорошо знакома с TXT и HTML, причем последние можно импортировать прямо из Сети, указав в основной форме URL нужной страницы вместо адреса локального файла. Правда, качество результата сильно зависит от сложности верстки исходной веб-страницы. Any to FB2 требует наличия на компьютере пакета Microsoft XML Core Services (MSXML) версии 4 и выше.
Данная софтина не умеет обрабатывать каталоги, поэтому преобразовывать документы придется поодиночке. В то же время возможностей настройки конвертирования здесь заметно больше. На закладках основной панели можно указать нужные параметры преобразования, например замену «минусов» на корректные тире или автоматическое распознавание блоков со стихами, а также опции обработки HTML-файлов – удаление внешних ссылок, картинок, автоматическое добавление в FB2-файл страниц, на которые ссылается HTML-файл. Для «тонкой» обработки отдельных элементов в качестве масок допустимы регулярные выражения.
Достаточно удобен конвертер htmlDocs2fb2 (htmldocs2fb2.narod.ru). Он принимает как документы «офисных» форматов, так и HTML-файлы. Преобразование в целом получается корректное. Кроме того, в этом приложении есть встроенный редактор для быстрого заполнения основных метаданных новой электронной книги.
Для редактирования уже готовых файлов FB2 можно использовать программу FictionBook Editor (code.google.com/p/fictionbookeditor). У «Эдитора» понятный интерфейс на русском языке, с его помощью можно изменять текст книги, редактировать метаданные, а также напрямую работать с XML-кодом. Поддерживается добавление иллюстраций, таблиц, сносок и заголовков различного уровня. Замечательное качество данной софтины – наличие доброго десятка скриптов, автоматизирующих выполнение типовых операций со структурой и внешним видом электронной книги.
Альтернатива – редактор FictionBook Designer (www.bookdesigner.org). Он также имеет функции несложного текстового редактора. Кроме того, программа снабжена подробной справкой, в которой пошагово рассказывается о процессе создания электронной книги.
Работаем с форматом ePUB
В отличие от FictionBook, который представляет собой практически чистый XML, формат ePUB – это, по сути, контейнер: ZIP-архив, в который упакованы все файлы, составляющие электронную книгу. Еще одно отличие от FB – довольно широкое издательское признание. В 2007 году он был стандартизирован в сфере цифрового издательства и достаточно быстро стал широко распространенным решением. Для большого количества ридеров – как программных, так и «железных» – он является родным.
Внутреннее устройство таких контейнеров вроде бы достаточно простое, в то же время их подготовка описана сразу в нескольких довольно объемных спецификациях. Мы упомянем только пару основных моментов, необходимых для быстрого старта начинающего книгоиздателя. Контейнер ePUB должен содержать несколько расположенных в определенном порядке файлов. Метаданные составляются с помощью XML. Основной контент ePUB, то есть «тело» книги, можно написать на самом обычном и хорошо известном языке разметки XHTML.
Если вскрыть книжку в формате ePUB любым архиватором, понимающим ZIP, то мы обнаружим стандартный набор компонентов. Первый файл, который, кстати, не должен быть сжатым (чтобы его точно смог прочитать любой ридер), – mimetype, который и сообщает о том, что это именно книга в формате ePUB. Далее идут два каталога.
Каталог META-INF содержит XML-файл с метаинформацией о структуре книги. Кроме того, здесь могут располагаться дополнительные файлы, например содержащие данные цифровой подписи или позволяющие работать с системой DRM. Каталог OEBPS (Open eBook Publication Structure) предназначен для хранения контента книги. Там находится OPF-файл оглавления. Его данные впоследствии могут быть полезны в автоматической каталогизации.
Для описания книг используется формат Dublin Core, специально предназначенный для каталогизации электронных материалов. Обязательными элементами такого описания являются автор и уникальный идентификатор книги. В издательствах в качестве последнего обычно указан международный код книги – ISBN. «Частники» могут заменить его на какой-либо URL или, хотя это, конечно, нельзя назвать лучшим выбором, просто сгенерировать случайный идентификатор.
В минимальный набор метаданных также принято включать сведения о языке, дате публикации, издателе и лицензии, по условиям которой предлагается данная книга. Кроме того, в каталоге OEBPS содержится папка иллюстраций images, CSS-файл стилей, а также нужное количество HTML-файлов с частями книги. При именовании файлов следует учитывать регистр – это важно для последующей правильной работы ссылок.
Корректный код контента книги должен ссылаться только на локальные картинки. В целях обеспечения совместимости настоятельно рекомендуется придерживаться спецификаций XHTML и не «баловаться» JavaScript. Для оформления применяется CSS, причем допускается использование встроенных шрифтов. Последний факт становится критически важным, если ваша книга будет содержать формулы или блоки текста на экзотичных языках.
В принципе, править документы этого формата можно любым текстовым редактором, благо код там написан с помощью самых распространенных языков разметки. Однако трудозатраты при этом будут заметно больше, чем при ручной верстке FictionBook. Да и уровень предварительной подготовки верстальщика должен быть более высоким. Самое время познакомиться с приложениями, упрощающими эту задачу.
Для генерации ePUB можно применять как узкоспециализированные программы, так и универсальные пакеты, обладающие соответствующими опциями экспорта. Генерировать ePUB умеют и профессиональные коммерческие приложения. Один из наиболее удачных генераторов встроен в издательский пакет Adobe InDesign.
Если говорить о свободно распространяемых инструментах, то простейшим решением будет небольшая программка EPUBGen (code.google.com/p/epub-tools). Этот конвертер дружит с форматами FB2, DOCX и RTF. Написана программа на Java, инсталляции не требует, однако на компьютере должна иметься соответствующая виртуальная машина.
Этот генератор, к сожалению, при конвертировании весьма капризен. Например, он совершенно не умеет работать с таблицами – содержащаяся в них информация превращается в бесформенную кашу. В то же время «гладкий» текст с нормальным структурированием, заголовками разного уровня, простейшей версткой будет обработан вполне корректно. Единственный нюанс – имея дело с книгой на русском языке, на закладке Settings не забудьте отключить опцию автоматического транслитерирования кириллицы в метаданных.
Сгенерировать файл на основе имеющегося текстового документа можно и в онлайне. Самые известные онлайновые конвертеры – Online ePub Converter (ebook.online-convert.com/convert-to-epub) и 2epub (www.2epub.com). Устроены они просто: загружаем нужный файл, запускаем процесс и скачиваем результат конвертирования.
Довольно удачное средство создания ePUB-книги «с нуля» – редактор Sigil (code.google.com/p/sigil). C его помощью также можно откорректировать уже готовый ePUB-файл. Наполнять разделы можно как с чистого листа, так и импортом готовых HTML-файлов, причем при необходимости Sigil умеет анализировать и чистить HTML-разметку от лишнего мусора.
Инструменты редактирования в основном предназначены для операций с текстом – все базовые опции под рукой. Поддерживается добавление иллюстраций, а вот таблицы придется создавать вручную, благо в Sigil предусмотрен режим прямой работы с HTML-кодом. Готовую книжку можно проверить прямо в Sigil с помощью валидатора FlightCrew. Процесс облегчает наличие русского интерфейса, правда, перевод выполнен не полностью.
Универсальные конвертеры
Нельзя не упомянуть пару универсальных инструментов, которые подходят для конвертирования файлов в различные «ридерские» форматы. Речь идет о Calibre и Hamster. Пакет Calibre (calibre-ebook.com) – это одно из самых мощных на сегодняшний день средств работы с персональными электронными библиотеками.
Соответствующие инструменты собраны в разделе «Преобразовать книги». Как и другие разделы Calibre, он открывается здоровенной кнопкой на панели инструментов. Данная панель предлагает десяток вкладок, на которых можно достаточно гибко настроить параметры преобразования. Потрудиться можно как над контентом, так и над метаинформацией: дополнить или изменить аннотацию, сведения об авторе и издании.
Вкладка «Вид и функции» позволяет улучшить внешний вид текста, отредактировать или создать новые стили. Программа Calibre также умет автоматически заменять нестандартные или ошибочно примененные знаки, например кавычки и тире, их корректными «типографскими» аналогами.
Комплексный анализ оформления можно включить на закладке «Эвристическая обработка». Он имеет смысл, если исходный файл отформатирован некачественно. Calibre, основываясь на шаблонах, попытается самостоятельно определить заголовки и подзаголовки, убрать пустые строки, форматировать абзацы с использованием CSS и провести уборку другого мусора. Эвристический анализ не панацея, обычно он просто в той или иной степени упрощает последующее редактирование, сокращая количество ручной работы.
Применять его к изначально корректно структурированному документу не имеет смысла. Настройки позволяют сформатировать страницы, оптимальные для чтения на определенных устройствах с конкретным разрешением экрана. Наличие этой опции оправданно, пожалуй, только для преобразования «на ходу» книжек для своего персонального устройства, если вам по каким-либо причинам не нравится их «умолчальный» внешний вид. Наиболее полезна данная опция для изменения ориентации страниц (портретная / ландшафтная) в иллюстрированных изданиях.
Если вам не требуются многочисленные инструменты Calibre, попробуйте программу Hamster Free eBook Converter (www.hamstersoft.com/free-ebook-converter). Работает она только с файлами готовых электронных книг и умеет готовить публикации для большинства современных ридеров, а также сохранять файлы во всех основных многоплатформенных форматах.
Процесс полностью автоматизирован, от нас требуется только указать исходные файлы (поддерживается пакетная обработка) да выбрать итоговый формат новых книг. Каких-либо тонких настроек нет в принципе. С одной стороны, это упрощает дело. С другой – если электронная книга конвертируется некорректно, а такое здесь случается, поправить ситуацию невозможно. Кроме того, при встрече со сложным файлом Hamster может просто-напросто зависнуть. UP