Как уже отмечалось, проблема распечатки или преобразования FB2-книг в полиграфически-близкий формат стоит достаточно остро. Однако решать ее почему никто не торопился. Один автор написал великолепный конвертор в закрытый формат и остановился на этом. Другой создал работающий, но весьма громоздкий, лишенный какой-либо документации пакет, использущий многократное преобразование книги, в том числе и через XSL-FO. И только сравнительно недавно появилось решение, претендующее на простоту и удобство.
Это утилита FB2PDF, написанная пользователем, известным на форуме FictionBook.org под ником hedgehog77.
Софтина написана на языке Java. Это требует наличия на компьютере установленной Java-машины. Взять ее можно отсюда: http://www.java.com/ru/download/manual.jsp
Как следует из названия утилиты, она нацелена на создание PDF-файлов.
Документацией
java -jar fb2pdf.jar -cfg <путь к xml-файлу конфигурации> -in <путь к исходному файлу> [-out <путь к выходному файлу>]
Впрочем, если пользоваться консольным файл-менеджером, эту строку вполне реально подсократить.
Вот так:
fb2pdf.jar -in <путь к исходному файлу>
В качестве исходной конфигурации используется файл config.xml, а имя выходного файла, как нетрудно догадаться, получается сменой расширения «fb2» на «pdf» во входном имени.
Сконвертировав парочку файлов, я взглянул на результаты и был несколько озадачен. Нет, программа действительно работает, но выдаваемые ею файлы явно заточены под какую-нибудь аппаратную читалку, но никак не под вожделенное полиграфическое качество.
Поэтому ничего не оставалось, как заняться настройкой софтины собственноручно. Благо, xml-формат конфигурационного файла к этому располагает.
Перво-наперво нужно было настроить размер страницы (тэг page).
Как и положено, в нем имеются атрибуты width и height. Неожиданностью оказалось другое. Размеры страницы указываются не в миллиметрах, а в пунктах! Есть такая единица в полиграфии.
К счастью, памятуя, что 72 пункта — это дюйм, а дюйм равен 25,4 мм, выставить потребный размер A5 оказалось нетрудно. 148 x 210 мм = 5,82 x 8,26 дюйм = 420 x 595 пунктов.
Для справки: А4 будет 595 x 842 пункта, а A6 (1/4 A4) — 298 x 420 пунктов.
Теперь настала очередь отступов. Может быть, для аппаратной читалки отступы и не нужны. А вот для документа полиграфического качества — даже очень. Атрибутам margin-top и margin-bottom были присвоены значения 20 и 30 соответственно. Затем в тэг page были добавлены значения отступа слева и справа. Я предположил, что эти атрибуты называются margin-left и margin-right. Угадал!