После всех операций тэг page принял вид:
<page width='420' height='595'
margin-top='20' margin-bottom='30'
margin-left='25' margin-right='25'/>
Далее в конфиге следует объемистый раздел — тэг fonts. Он содержит описание использующихся при создании pdf-ки шрифтов. Структура его очень проста. Имеем определение типа шрифта, отбитое тэгом font и поименованное атрибутом этого тэга — name. И ссылки на четыре ипостаси этго типа — нормальный, жирный, курсив и жирный курсив, оформленные соответствующими тэгами. В комплекте с софтиной поставляется несколько шрифтов типа Liberation. Свободные, значит.
Ради интереса я добавил свой вариант шрифта.
<font name='times'>
<normal>C:WINNTFonts imes.ttf</normal>
<bold>C:WINNTFonts imesbd.ttf</bold>
<italic>C:WINNTFonts imesi.ttf</italic>
<bold-italic>C:WINNTFonts imesbi.ttf</bold-italic>
</font>
Последняя часть конфига — самая важная. Это тэг
Кстати, в архиве fb2pdf.jar спрятана схема файла конфигурации — config.xsd. Там, кроме всего прочего, можно найти полный список стилей.
Вид стилей регулируется, естественно, при помощи атрибутов тэгов. Тип шрифта, выравнивание, отступы, даже включение переносов.
Здесь, правда, не обошлось, без огрехов. Например, для колонтитулов нельзя выставить выравнивание и отступы. Не хватает регулировки межсимвольного и межстрочного расстояния. Также не помешало бы определение цвета символов. Есть и откровенный баг — попытка выбрать курсивный шрифт (добавление к типу шрифта модификатора «:i» в атрибуте font) приводит к выбору шрифта жирного.
Ничтоже сумняшеся, я выставил атрибуту
Принятые меры дали возможность довести объем информации на одной странице до 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.
Можно использовать ее, а можно создать свою.