Вадим Кузнецов - Описание работы пакета OOoFBTools Создание книг FB2
4.3.5. Обложки Книги
Конвертер конвертирует и обложки книги. Главное условие: все картинки, формулы и диаграммы, находящиеся в документе выше Названия Книги – абзаца со стилем Book Title (по-умолчанию) воспринимаются конвертером, как обложки.
4.3.6. Особенности работы с Графикой для Unix-подобных систем
Для кодирования картинок используется утилита base64. Пакет с ней обычно сразу устанавливается при установке дистрибутива Linux. С Ubuntu – это так. Если же на вашем дистрибутиве Linux почему-то не установлен этот пакет, то его необходимо доустановить. Чтобы проверить, установлен ли пакет base64 или нет, выполните в терминале команду: base64 – ? Если пакет установлен, то вы увидите краткую справку, если нет – то терминал выдаст соответствующее сообщение.
4.3.7. Условия успешного экспорта Графики
Т.к. Конвертер позволяет экспортировать самые различные типы графики в base64 в fb2-файл, то для этого он сначала преобразует (это не относится к png и jpeg) графику в формат, «допустимых» для читалок (см. Настройки), а только потом кодирует в base64.
К сожалению, в силу каких-то внутренних особенностей OOo это преобразование в файл может либо не осуществиться, либо вместо полноценной картинки получится «обрубок» из нескольких байт. Такую картинку не откроет ни один графический вьювер – файл «битый». OOo определяет тип любой Графики неверно (в основном, как x-vclgraphic), и сохраняются «обрубки» картинок, а они в свою очередь кодируются в base64 так: iVBORw0KGgo=. Всего несколько байт, вместо «полноценного» кода. Книга экспортируется, а вот картинка в читалке не отобразится – закодированный «обрубок» картинки не воспринимается (как и должно быть).
Есть несколько случаев, когда это происходит:
1. Если работа любого макроса в OOo (OOoFBTools или любого другого вами установленного) была аварийно прервана или сознательно вами остановлена, то экспорт Графики уже не будет корректно осуществлен.
2. Если вы вставили Графику в текст (из файла, как Графический объект и т. д.), не закрывали редактор, а сразу же экспортировали книгу в fb2.
Поэтому, чтобы избежать всех этих проблем с «обрубленными» картинками и получить корректный результат экспорта, необходимо жестко придерживаться следующих правил:
1. Если любой макрос был остановлен либо аварийно завершил свою работу – перезагрузите редактор, и только потом экспортируйте книгу в fb2.
2. Если вы правите текст Книги, устраняете грамматические ошибки, «отбиваете» стилями Заголовки, Цитаты и т. д., вставляете в нее картинки, то сохраните книгу, перезагрузите редактор, и только потом экспортируйте книгу в fb2.
При соблюдении этих условий у меня прекрасно экспортировались картинки с dpi 300 и размерами 5000 x 5360 (просто чисто для эксперимента)!!! Хотя, чем меньше dpi и размеры картинки (до разумного предела) – тем лучше.
4.4. Работа с ссылками внутри документа
4.4.1. Создание ссылок
Очень полезная функция конвертера!
Например, надо из текста сноски по клику на какое-то слово перейти на Заголовок Поэмы. Или из Названия Книги – на Автора Цитаты. Или – из Автора Эпиграфа – на какой- нибудь раздел книги. Это легко теперь можно сделать. Как?
Прежде всего для простоты определимся с терминологией. Абзац, куда ссылается ссылка назовем «цель», а слово(а), которое(ые) ссылается(ются) на «приемник» – источник».
1. Поставьте курсор в любое место абзаца – «цели» (обычно в начало). Выберите меню «Вставка» -› «Закладка». В появившемся диалоге введите имя закладки (желательно информативно, чтобы самому потом не запутаться, какая закладка к чему относится).
Важно: имена закладок – по-английски, и ни в коем случае впереди имени закладки не ставьте символ «#»! Работать ничего не будет!
Пример ввода закладки для Названия Книги (сюда планируем отправить ссылку из сноски):
2. Выделите «источник». Через меню «Вставка» выберите «Гиперссылка», и в появившемся диалоге выдерите иконку «Документ». В поле «Цель» введите имя нужной закладки, нажмите кнопку «Принять». Пример:
Можно вводить имя закладки не вручную (чтобы случайно не ошибиться), а с помощью диалога «Ссылка на элемент в документе». Эта кнопка – справа от поля «Цель»:
В дереве элементов выбираем «Закладки», а там – нужную нам закладку, нажимаем «Применить»:
Теперь жмем «Закрыть» для возврата в диалог «Гиперссылка», и в нем нажимаем кнопку «Применить»:
Теперь закрываем это диалог – и т. д.
Сконвертируйте тестовый документ ExportToFB21_Test.odt, и посмотри на самые различные (и немыслимые) варианты ссылок. Их работоспособность в fb2 файле можно проверить или в fb2-редакторе (кнопки перехода по ссылкам) или в читалках, просто нажав на ссылки мышкой.
4.4.2. Что важно помнить:
1. Ссылки на таблицы и (или) на текстовые врезки НЕ РАБОТАЮТ – нужно переделывать весь их алгоритм, а оно вряд ли того стоит…
2. Если включить опцию сборки нескольких подзаголовков (SubTitle) в одну строку (тоже самое – и для заголовков Поэмы), то в результирующем Subtitle (или заголовке Поэмы) атрибут id будет взят из последнего Subtitle (или заголовке Поэмы) с закладкой! Это значит, что другие “ссылки” на переставшие существовать абзацы просто будут “указывать в никуда”! Учитывайте это!
3. Как уже было сказано выше, ни в коем случае впереди имени закладки не ставьте символ «#»! Работать ничего не будет! Это «служебный» символ для обозначения ссылки для атрибута «href» тега ‹a› fb2-файла (да и в xml, тоже). Например: ‹a l: href="#b Title" type="note"›. Если впереди имени закладки поставить символ «#» (‹a l: href="##bTitle" type="note"›), то ссылка просто работать не будет, т. к. в абзаце, куда она ссылается, в атрибуте “id” будет не «#bTitle», а «bTitle», которое конвертер берет из имени закладки – Bookmark.Name. Писать дополнительный код проверки – это обречь конвертер на еще медленное конвертирование (Open BASIC – язык интерпретатор), а это не есть хорошо. Поэтому – будьте внимательны, когда вводите имя закладки!
4.5. Работа со стихами
4.5.1. Структура стиха
Согласно схеме FictionBook стих (poem) имеет следующую структуру:
Т.е. он состоит из необязательных элементов (порядок очередности важен!) Заголовок, Эпиграф. Потом – бесконечное число чередований обязательных элементов Подзаголовок или Четверостишие (одно или бесконечное число). Потом – опять необязательные элементы Автор стиха (один или ни одного) и Дата написания. Все это полностью реализовано в конвертере.
В свою очередь элемент Stanza (Четверостишие) сам имеет два необязательных элемента Заголовок и Подзаголовок, и один обязательный – v. Элемент v реализован в конвертере, а два необязательных элемента Заголовок и Подзаголовок для Stanza – нет. Это связано с тем, что пользователю будет тяжело не запутаться с «отбивкой» стилями.
Если вы отформатируете стилями текст стиха (поэмы) в соответствии с этой схемой на картинке, то конвертер экспортирует текст корректно. Если вы переставите местами какой-либо элемент структуры Стиха – то в fb2 файле Поэма будет «разбита» на несколько, но валидация сработает, либо книга не будет валидной. Все зависит от того, что вы перепутаете. Так что будьте внимательны и сверяйтесь с этой схемой Поэмы!
4.5.1.1. Важная особенность работы со Стихами
Т.к. Стих может иметь свой Эпиграф, и Эпиграф может иметь свой стих, то, для того, чтобы конвертер смог отличить где Эпиграф относится к Стиху, а где – Стих принадлежит Эпиграфу, надо сделать следующее. Если Эпиграф Стиха имеет Автора, то лучше вставить его со стилем Epigraph Author. Если Автора Эпиграфа нет, то надо после Эпиграфа Стиха поставить пустой абзац стиля Epigraph Author.
Если этого не сделать, то конвертер (он не человек – не знает логику Стихов), «посчитает» Стих после Эпиграфа, не как основной Стих, а как Стих этого Эпиграфа.
Будьте внимательны!
4.5.2. Виды стихов
Конвертер позволяет экспортировать 3 вида стихов:
1. Несколько поэм, идущих одна за другой. Это достигается вставки между ними пустого абзаца без форматирования и отключением в Диалоге Настроек опции «Удалять пустые строки».