Чтение онлайн

на главную - закладки

Жанры

Создание электронных книг в формате FictionBook 2.1: практическое руководство
Шрифт:

Надо, Златко, надо. Принт-офис для FB2-книг — тот мостик, который соединит книги электронные и бумажные. А ситуации, когда нужно быстро и качественно превратить e-book в компактный бумажный томик, встречаются чаще, чем хотелось бы. Если даже не брать в расчет друзей, подруг, родителей, бабушек-дедушек, не признающих чтения с экрана, бумага все-таки надежный, проверенный временем, носитель информации. А современные принт-менеджеры, наподобие FinePrint, прекрасно справляются с минимизацией расхода этого ценного ресурса. И, конечно же, возможность печати книжки в типографском качестве (конвертации ее в PDF) — еще один жирный

бонус в копилку преимуществ FB2.

В программе используется мощная библиотека для работы c RTF. Почему нельзя подготовленную для растеризации виртуальную страничку отправлять на печать, мне решительно непонятно.

На худой конец, можно встроить функцию печати в просмотрщик файлов Wolf — MiniWolfViewer. Но это уже полумера. Растеризованное изображение действительно хуже смотрится на бумаге.

Но, пока что, Златко вообще свернул развитие FB2GrWolf, мотивируя это слабым интересом пользователей. Хотя, откуда бы означенному интересу взяться, если читалки на e-ink, и Jinke в частности, до сих пор остаются дорогостоящей диковинкой.

Резюмируя, можно сказать, что мы имеем отличный программный продукт с большими нереализованными возможностями.

§ 6.4 FB2PDF

Как уже отмечалось, проблема распечатки или преобразования FB2-книг в полиграфически-близкий формат стоит достаточно остро. Однако решать ее почему никто не торопился. Один автор написал великолепный конвертор в закрытый формат и остановился на этом. Другой создал работающий, но весьма громоздкий, лишенный какой-либо документации пакет, использущий многократное преобразование книги, в том числе и через XSL-FO. И только сравнительно недавно появилось решение, претендующее на простоту и удобство.

Это утилита FB2PDF, написанная пользователем, известным на форуме FictionBook.org под ником hedgehog77.

Софтина написана на языке Java. Это требует наличия на компьютере установленной Java-машины. Взять ее можно отсюда: http://www.java.com/ru/download/manual.jsp

Как следует из названия утилиты, она нацелена на создание PDF-файлов.

Вся документация на программу — крохотная readme-шка. Особо продвинутым пользователям достаточно, все остальные могут читать дальше.

Запуск программы производится следующим образом:

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. Угадал!

После всех операций тэг 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:\WINNT\Fonts\times.ttf</normal>

<bold>C:\WINNT\Fonts\timesbd.ttf</bold>

<italic>C:\WINNT\Fonts\timesi.ttf</italic>

<bold-italic>C:\WINNT\Fonts\timesbi.ttf</bold-italic>

</font>

Последняя часть конфига — самая важная. Это тэг styles. Здесь также нет ничего сложного. Для каждого значимого элемента FB2 имеется определенный стиль, отбитый соответствующим тэгом. Title, epigraph, cite… На всякий случай сообщу, что вид обычного текста определяется тэгом sect. Тэги toc-entry предназначены для оглавления, а page-header — для верхних колонтитулов.

Кстати, в архиве fb2pdf.jar спрятана схема файла конфигурации — config.xsd. Там, кроме всего прочего, можно найти полный список стилей.

Вид стилей регулируется, естественно, при помощи атрибутов тэгов. Тип шрифта, выравнивание, отступы, даже включение переносов.

Здесь, правда, не обошлось, без огрехов. Например, для колонтитулов нельзя выставить выравнивание и отступы. Не хватает регулировки межсимвольного и межстрочного расстояния. Также не помешало бы определение цвета символов. Есть и откровенный баг — попытка выбрать курсивный шрифт (добавление к типу шрифта модификатора «:i» в атрибуте font) приводит к выбору шрифта жирного.

Поделиться:
Популярные книги

Как я строил магическую империю 4

Зубов Константин
4. Как я строил магическую империю
Фантастика:
боевая фантастика
постапокалипсис
аниме
фантастика: прочее
фэнтези
5.00
рейтинг книги
Как я строил магическую империю 4

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Попаданка 3

Ахминеева Нина
3. Двойная звезда
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Попаданка 3

Муж на сдачу

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Муж на сдачу

Призыватель нулевого ранга. Том 3

Дубов Дмитрий
3. Эпоха Гардара
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Призыватель нулевого ранга. Том 3

На границе империй. Том 10. Часть 5

INDIGO
23. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 5

Адвокат

Константинов Андрей Дмитриевич
1. Бандитский Петербург
Детективы:
боевики
8.00
рейтинг книги
Адвокат

На границе империй. Том 7

INDIGO
7. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
6.75
рейтинг книги
На границе империй. Том 7

Здравствуй, 1985-й

Иванов Дмитрий
2. Девяностые
Фантастика:
альтернативная история
5.25
рейтинг книги
Здравствуй, 1985-й

О, Путник!

Арбеков Александр Анатольевич
1. Квинтет. Миры
Фантастика:
социально-философская фантастика
5.00
рейтинг книги
О, Путник!

Чужбина

Седой Василий
2. Дворянская кровь
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чужбина

Бестужев. Служба Государевой Безопасности. Книга четвертая

Измайлов Сергей
4. Граф Бестужев
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга четвертая

Локки 5. Потомок бога

Решетов Евгений Валерьевич
5. Локки
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Локки 5. Потомок бога

На границе империй. Том 10. Часть 4

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 4