Последняя часть конфига — самая важная. Это тэг styles. Здесь также нет ничего сложного. Для каждого значимого элемента FB2 имеется определенный стиль, отбитый соответствующим тэгом. Title, epigraph, cite… На всякий случай сообщу, что вид обычного текста определяется тэгом sect. Тэги toc-entry предназначены для оглавления, а page-header — для верхних колонтитулов.
Кстати, в архиве fb2pdf.jar спрятана схема файла конфигурации — config.xsd. Там, кроме всего прочего, можно найти полный список стилей.
Вид стилей регулируется, естественно, при помощи атрибутов тэгов. Тип шрифта, выравнивание, отступы, даже включение переносов.
Здесь, правда, не обошлось, без огрехов. Например, для колонтитулов нельзя выставить выравнивание и отступы. Не хватает регулировки межсимвольного и межстрочного расстояния. Также не помешало бы определение цвета символов. Есть и откровенный баг — попытка выбрать курсивный шрифт (добавление к типу шрифта модификатора «:i» в атрибуте font) приводит к выбору шрифта жирного.
Ничтоже сумняшеся, я выставил атрибуту def-font-size тэга styles значение 10. Удалил из него атрибут font. Затем удалил атрибуты font-size из тэгов stanza, cite, а также из всех toc-entry. Подкорректировал значение упомянутого атрибута в тэгах title, subtitle, epigraph, text-author до 14, 12, 7 и 8 соответственно.
Принятые меры дали возможность довести объем информации на одной странице до 2,3 Kb — как в настоящей книге.
Все. Можно «печь» PDF-ки.
Помимо печати, возможность конвертации в PDF полезна вот для чего. На популярных книговарезных блогах стандартом де-факто стали PDF и DJVU. FB2 там принимают очень неохотно, а если и выкладывают, то обязательно отыщется кадр, который будет таращить глаза «А что это такое?» или простодушно попытается открыть файл Word-ом. А так — кладем в архив PDF и FB2, и все проблемы снимаются.
В общем, pdf-ки у FB2PDF получаются очень даже недурственные. Тем более раздражают кое-какие досадные мелочи…
Дело в том, что недостатки программы вышеперечисленными не исчерпываются. Картинки в обязательном порядке растягиваются до ширины страницы — иногда получается очень некрасиво. Наличие в абзаце сносок резко увеличивает межстрочное расстояние до конца оного абзаца. Зверски не хватает нумерации страниц, с включением их в оглавление, а также аннотации. Наконец, не мешало бы добавлять страничку с информацией об исходной FB-шке.
Резюме. Единственный более-менее вменяемый конвертор в полиграфически-близкий формат. Недочетов у него конечно много, но подавляющее большинство из них — болезни роста. Если автор найдет время и силы довести прогу до ума, мы получим отличный инструмент для домашнего книгоиздания.
Часть VII
Прочее программное обеспечение для работы с FictionBook
§ 7.1 Программа-библиотекарь для книг в формате FictionBook
Вы уже привыкли читать «с экрана», вы читаете много, и ваша коллекция электронных книг постоянно растет. Но когда количество книг переваливает за вторую сотню, то внезапно обнаруживается, что найти нужную книгу становится все труднее.
Поневоле приходишь к мысли, что нужен каталогизатор или оболочка, который позволит рассортировать массив файлов и эффективно ориентироваться в нем.
Специально для этих целей Дмитрий Пустовит и Олег Князев написали программу FB2Librarien («Библиотекарь»).
Данное описание верно для версии 1.4.0.0
Ведет базу данных всех имеющихся книг. Информация хранятся в формате бесплатной СУБД Firebird 1.5.
Автоматически сортирует книги, согласно описаниям (description).
Отображает всю информацию о книге, включая аннотацию и обложку.
Позволяет добавлять дополнительную информацию, например, подробные сведения об авторе.
Поддерживает раздельную работу пользователей. Для каждого пользователя ведется отдельная история чтения книг, избранное.
Позволяет пользователям оценивать книги и добавлять рецензии.
Может экспортировать книги из библиотеки на ActiveSync устройство (поддерживаются устройства под управлением WinCE и PalmOS) или просто в отдельную папку.
Может работать в локальной сети.
Поддерживает скины .msstyle.
Можно экспортировать список всех книг в html-файл.
Скачать программу можно с ftp-сервера Fictionbook.org. Раздел pub. Программа полностью бесплатна. Для работы FB2Librarien требуется M$ Windows 2000 или XP. Запуск программы под Windows 9x возможен, но там она работает не совсем корректно.
Распакуйте архив в нужную директорию. Совсем не обязательно, чтобы она была в Program Files. Лучше всего создать директорию в корневом каталоге диска, например, D:\FB2LIBR.
При этом установка Firebird на ПК вовсе не требуется. Необходимая dll-ка включена в дистрибутив программы. Сервер Firebird будет нужен только при работе в локальной сети.
При первом запуске программы автоматически открывается пустая база данных. Она хранится в каталоге, где находится программа, в поддиректории Library.
Можно использовать ее, а можно создать свою.
Новая база создается с помощью функции меню «Библиотека/Создать» (Ctrl+N).
Выбираем способ хранения книг «База данных» или «Файловая система».
При способе хранения «База данных» файлы книг хранятся в теле самой базы данных, в поле BLOB.
При способе хранения «Файловая система» книги размещаются в специально отведенной папке, упакованные в архивы ZIP. Для каждого автора создается отдельная папка «имя_фамилия».
Нужно указать местоположение файла базы и его формат (рекомендуется .fdb), а для способа хранения «Файловая система» еще и папку, где будут храниться книги — точку монтирования.
Способ хранения данных можно в любой момент изменить. Делается это функцией меню «Библиотека/Изменить способ хранения».
В настройках, «Инструменты/Опции», в разделе «Хранилище» тоже присутствует выбор «База данных/Файловая система». Однако попытка изменить способ хранения книг таким образом, может привести лишь к тому, что часть книг будет в базе, а часть — в папках.
Иногда, после создания базы выскакивает окно с ошибкой и база не добавляется в список доступных баз. В таком случае вызываем функцию «Библиотека/Открыть» и добавляем ее вручную («Добавить в портал»).
Чтобы начать работать с программой необходимо:
а) авторизоваться;
б) закачать книги в базу данных.
Чтобы выполнить какое-либо действие, затрагивающее содержимое базы данных, например, добавить книги в библиотеку, необходимо авторизоваться (ввести имя пользователя).
Программа сама предложит вам авторизоваться, как только вы попытаетесь выполнить действие, которое доступно только для зарегистрированного пользователя.
На панели инструментов есть специальная пиктограмма «Авторизация» (стилизованное изображение человека). Или нажмите Ctrl+L.
Вводим имя пользователя (логин), и, если требуется, пароль. Щелкнув по кнопке со стрелкой, можно выбрать пользователя из списка.
Изначально в базе уже есть встроенный пользователь «owner», имеющий права владельца библиотеки. По умолчанию ввод пароля для него не требуется.
Если установить галочку «Запомнить», при последующих запусках программы будет осуществляться автоматический вход под соответствующим логином.
Можно тут же создать нового пользователя. Для этого щелкните по ссылке «Регистрация».
В появившемся окошке введите имя пользователя, и, если считаете нужным, пароль. Пароль вводится два раза.
Данные о пользователях хранятся в самой базе данных библиотеки. Поэтому если вы создали новую базу, там нужно будет регистрироваться по-новой.