Текст книги "Описание работы пакета OOoFBTools Создание книг FB2"
Автор книги: Вадим Кузнецов
Жанр:
Программное обеспечение
сообщить о нарушении
Текущая страница: 3 (всего у книги 6 страниц)
5. Корректная структура документа (тонкости)
Мы не будем описывать здесь всю схему FictionBook2.1, а только те моменты, которые очень важны для правильной разметки структурыконвертируемого документа. Лишь в случае правильной разметки структуры экспорт произойдет без единой ошибки и править в полученном fb2 документе вообще ничего не надо будет, за исключение моментов, описанных в п. 5.
Итак, что такое "правильная" разметка структуры? Когда мы придаем отдельным абзацам определенные стили (поэма, цитата, заголовок (уровень), аннотация и т. д.) мы формируем структуру документа. А эта структура должна соответствовать схеме FictionBook2.1. Иначе документ сконвертируется, но валидацию не пройдет. Например: в книгах часто идет аннотация, а потом – эпиграф. Но, согласно схеме FictionBook2.1 должно быть наоборот – сначала эпиграф, а потом – аннотация. Если вы сделаете как в книге, а не по схеме– документ будет невалидный, и online-библиотеки, если не ошибаюсь, его не примут.
А теперь чуть подробнее.
Структуру документа, условно, можно разбить на два блока: 1. От названия книги и до самого первого заголовка (части, раздела) – мы называем это "Уровнем". 2. От этого самого первого заголовка и до конца документа. В этих двух блоках обрамление текста тэгами ‹section› несколько отличается.
5.1. Блок от начала книги до первого заголовка (уровня)
В 1-м блоке самым первымэлементов должен быть Эпиграф, если он нужен. За ним могут идти еще несколько Эпиграфов, если они нужны, потом – Картинка, если она нужна, потом – Аннотация, если она нужна. При этом междувсеми этими элементами не должно быть ни одной пустой строки! Иначе документ получится невалидным.
Теперь могут идти следующие элементы структуры в любом порядке: Просто абзац текста, пустая строка, Поэма, Цитата, Подзаголовок (SubTitle), Таблица, Картинка Схематично все это можно представить так (в квадратные скобки [] взяты необязательныеэлементы, в круглые () – названия стилей для создания структуры документов, жирнымвыделены элементы, которых может быть любое количество), синим цветом – элементы, которые могут идти в любом порядке:
5.2. Блок от первого заголовка (уровня) до конца документа
Во 2-м блоке дело обстоит немного по – другому.
2-й блок начинается с самого первого Уровня – Части книги, Раздела книги или просто заголовка. Уровней заголовков может быть 10 (стиль Level 1… Level 10) (хотя программно можно очень легко их увеличить хоть до бесконечности – особенность алгоритма). В книге может быть такая структура:
Наши элементы (абзацы, стихи и т. д.) могут быть как между Уровнями разного ранга – 1-й случай, например:
так и между Уровнями одного ранга (номера) – 2-й случай, например:
5.2.1. СмежныеУровни разногоранга (номера)
Для 1-го случая с Уровнями разногоранга схема немного другая, чем для блока от начала книги до первого заголовка (уровня). Отличие состоит лишь в том, что между уровнями может вообще не быть никаких элементов(стихов, абзацев…). Т. е. схема расположения элементов структуры такая же, как и для 1-го блока:
5.2.2. СмежныеУровни одногоранга (номера)
Для 2-го случая между Уровнями одногоранга должен быть хоть один какой-нибудь элемент, кроме необязательных Эпиграф и (или) Картинка и (или) Аннотация! Схема расположения элементов структуры такая (в двойные скобки { [] } взяты элементы, которые могут и не быть, но хоть один из нихобязательно должен присутствовать):
5.2.3. Ошибки при разметке структуры смежных заголовков (уровней)
С другой стороны, если ранги Уровней перепутаны при разбивке структуры, то полученный fb2 документ не будет валидным! Например, нужна такая структура книги:
А мы ошибочно перепутали стили Level 2 и Level 3, и получили такую структуру:
то полученный fb2 документ не будет валидным! Номер следующего (смежного) Уровня по возрастанию не может отличаться от предыдущего более, чем на 1. По убыванию – как угодно. Поэтому, при разметке структуры будьте очень внимательны!
Таким образом, если документ отформатирован стилями в соответствии с этими правилами, диктуемыми схемой fb2.1 будет сконвертирован без единой ошибки и пройдет валидацию.
Для проверки всего этого, а также других возможностей данного конвертера создан файл ExportToFB21_Test.odt. Сконвертируйте его в fb2 документ.
6. Конвертация документа в формат fb2.1
6.1. Описание диалога конвертации
В этом диалоге задаются данные о книге, издательстве, об авторе fb2 документа (т. е. о себе), история этого fb2 документа и аннотация на книгу, если нужно.
Некоторые поля отмеченные красным цветом. Это поля, где данные должны быть обязательно! Этого требует схема FictionBook. Остальные поля заполнять желательно, но не обязательно. В случае их заполнения ваша книга будет содержать много дополнительной ценной информации.
Обязательное поле ID документа заполняется автоматически. При желании данные в нем его можно исправить, как вам угодно.
Список Жанрслужит для выбора жанра конвертируемой книги. Их может быть несколько. Счетчик справа от него – match– служит для задания степени соответствия книги выбранному Жанру в %. Атрибут matchтэга genreсделан по умолчаниюнеобязательным, как и задано в схеме FictionBook. Т. е. в контроле matchпо умолчанию стоит 0. В этом случае этот атрибут не заносится в тэг genre. Если же значение счетчика matchизменится, и станет больше 0, то это значение будет добавлено, как значение атрибута matchтэга genre.
Два переключателя fb2.1и fb2.2служат для выбора схемы жанров: FictionBook 2.1 или FictionBook 2.2. В зависимости от выбора схемы жанров меняется и выпадающий список жанров. Это полезно, когда вы готовите книгу для Библиотеки, которая работает со схемой FictionBook 2.1.
Один момент требует особого разъяснения. Около некоторых полей для ввода данных есть кнопка « +» и счетчик числа добавленных элементов. Если в эти поля вы ввели данные, но не нажимали кнопку « +», то в сконвертированном fb2-файле эти данные будут в единственном экземпляре. На счетчике будет 0 (ничего страшного). Когда этих данных должно быть несколько (несколько авторов, несколько переводчиков, несколько Custom Info, книга входит в несколько серий, несколько человек делали конвертируемый документ), то вводите данные в соответствующие поля, нажмите на кнопку « +». Значение счетчика увеличится на 1, поля очистятся. Можно вводить новые значения, если это требуется.
При работе с несколькими Авторами, Переводчиками и т. д. Если в списке уже есть данные (например, для 2-х Переводчиков), и вы ввели в поля данные на 3-го, то можно: ЛИБО нажать кнопку « +», счетчик отобразит « 3», поля очистятся, ЛИБО не нажимать кнопку « +», а данные так и оставить в полях. При экспорте они благополучно считаются.
Если вам надо загрузить свой профиль (данные об Авторе fb2 документа и Source OCR), то нажмите кнопку «‹ ‹». Если надо сохранить свой профиль – то нажмите кнопку «› ›».
По умолчанию fb2 создается в той же папке, где расположен исходный документ. При желании месторасположение результирующего файла можно изменить, нажав кнопку «. » – «Сохранить как» – или введя вручную нужный путь в поле.
Для того, чтобы ввести данные описания книги вы можете использовать любой из 2-х нижеописанных вариантов:
1. Вообще не использовать «Служебные стили», а вручную заносить данные в соответствующие поля формы конвертера. Плюс: Нет «лишней» информации в тексте книги, которую можно забыть отформатировать «Служебными стилями», и эти данные экспортируются в текст книги fb2 формата. Минус: При повторном конвертировании уже обработанной и ранее сохраненной книги надо будет опять вводить вручную все эти данные описания книги.
2. Использовать «Служебные стили». Плюс: Все данные описания книги хранятся в тексте самой книги и не переносятся в текст книги fb2 формата, а только в тэги ‹Description›. При повторном конвертировании уже обработанной и ранее сохраненной книги не надо будет опять обрабатывать все эти данные описания книги. Минус: Можно по невнимательности каким-либо данным придать не тот «Служебный стиль», и эти данные не будут экспортированы в тэги раздела описания книги в fb2 формате! Поэтому будьте внимательны!
При использовании 2-го способа все данные заносятся в текстовые массивы на стадии инициализации конвертера, и их уже «случайно испортить» вводя другую информацию форме конвертера нельзя. При этом всегда можно в поля диалога вводить дополнительные данные – они тоже будут экспортирование в тэги описания книги.
Совет:прочтите «Служебные стили» конвертера», «“Служебные стили” «по умолчанию»» и «Работа со «служебными стилями» в документе»!!!
6.2. Дополнительные настройки
Диалог «Дополнительные настройки» обеспечивает ряд «удобств» при работе с конвертером.
1. Можно выбрать – вставлять или нет пробел между словом и сноской (многим удобнее читать, когда после слова и перед номером сноски стоит пробел).
2. Можно выбрать стиль сноски: x, [x], [x], {x}, { x }, (x) или (x). По умолчанию будет использоваться [x].
3. Список «Заголовок сносок» позволяет выбрать одно из предопределенных или же ввести свое название для секции текста сносок в результирующем fb2-файле (Примечания, Сноски, Комментарии или какое-нибудь свое).
4. Для стихов предусмотрена возможность собирать несколько заголовков стиха в одну строку (по умолчанию опция отключена).
5. Для стихов, эпиграфов и цитат введена возможность собирать нескольких авторов в одну строку через запятую (по умолчанию опция выбрана) или оставить все, как есть – авторы размещаются на разных строках (по умолчанию опция отключена).
6. Та же возможность и для подзаголовков (subtitle).
7. «Обработка "проблемных" символов» позволяет корректно экспортировать символы amp;, ‹ и ›, как amp;amp;, amp;lt; и amp;gt
Включение этой опции также увеличивает время экспортирования документа.
8. Опция «Удаление пустых строк» говорит сама за себя – удаляются все пустые строки из документа в результирующем fb2 файле.
9. Опция "сохранить fb2-файл в utf-8, если в тексте есть маркеры" предназначена для сохранения fb2-файла жестко в utf-8 (не зависимо от выбранной пользователем кодировки), если в тексте есть хоть один маркированный список. В этом случае маркеры экспортируются правильно (многие маркеры в windows-1251 не отображаются). Опция по-умолчанию включена.
10. Для Картинок предусмотрена опция «Сохранять название картинки, как атрибут “title”». Для inline картинок – с привязкой «как символ» эта опция игнорируется, чтобы не было нарушено соответствие схеме FictionBook2.1.
Опция «Экспортировать Графические Объекты» позволяет либо включить экспорт картинок, формул и диаграмм, либо отключить их экспорт, а оставить экспорт только их тэгов. Это сделано для того, что не на всех операционных системах OOo или производные от него редакторы (как на Mac Os X) может вести себя одинаково при преобразовании графики. И, если вдруг на вашей системе конвертер будет «слетать» при экспорте графики – просто пока отключите эту опцию – картинок в fb2-файле не будет, зато все остальные «изыски» конвертера будут работать.
Опции подгруппы Преобразовать форматыпредназначены для преобразования разных графических форматов, внедренных в документ к форматам, «родным» для fb2– читалок. Картинки png, jpeg перед кодированием не преобразуются – это основные форматы для читалок. Но, если в документе находятся форматы gif, tif, и т. д., а так же формулы и диаграммы, то все они сначала преобразуются в выбранный в этих настройках формат (понимаемый читалками), а потом уже кодируются в base64.
Можно поэкспериментировать с этими настройками, чтобы добиться наименьшего размера сгенерированного fb2-файла.
11. Для Таблиц предусмотрено выравнивание и Заголовков, и Строк в Ячейках по высоте (по ширине выравнивание считывается автоматически). При выборе «пустого» вида выравнивания для Заголовков и Строк Таблиц соответствующие атрибуты для тэгов не будут заноситься в код fb2 файлы.
В связи с тем, что текущий алгоритм обработки строк таблиц не позволяет считывать выравнивание по высоте для каждой строки, то выбранные значения будут применимы ко всем таблицам ко всем Заголовкам, Ячейкам и Строкам соответственно (хотя схема FictionBook2.1) позволяет применять свое выравнивание по высоте для каждой строки каждой ячейки отдельно. По ширине – все нормально – автоматом выравнивается каждая ячейка.
12. Для Врезок можно выбрать один из видов их экспорта – как просто текст, как цитату, как таблицу (стоит по умолчанию) или как структуру. Если выбран режим экспорта как таблицу, то появляется возможность задать выравнивание строк таблицы.
13. Опция «Обработка ссылок внутри документа» позволяет вводить в соответствующие тэги результирующего fb2 файла атрибуты id=” ” для перехода на них из различных мест текста. Подробности см. в п. 4.4.
14. Опции группы «Экспорт форматирования слов» дают возможность выбрать режим форматирования: либо «Только один стиль (приоритетный)», либо «Все символьные стили».
15. Опция «Экспорт текстовых полей» служит для экспорта любых текстовых полей (времени, номеров страниц и т. д.)
16. Опция «Генерировать сложный ID Книги» служит для генерации ID Книги, исходя из данных Авторов Книги и всех Авторов fb2-файла, а также времени создания fb2-файла.
Принцип генерации ID:
(а) Для русской локализации используется транслитерация и "строгие" символы (только цифры, латинские буквы и символ "-"); для всех остальных локализаций – только "строгие символы".
(б) При формировании ID приоритет отдается Нику Автора Книги (fb2-файла), ФИО – игнорируется. Если Ника нет, то тогда используются Фамилия и Имя (Отчество игнорируется для сокращения размера строки ID).
(в) В генерации участвуют данные всех Авторов Книги всех Авторов fb2-файла.
(г) Ввод данных в соответствующие поля влияет на генерацию ID.
Если опция отключена, то для генерации ID Книги используется только временя создания fb2-файла.
Режим «Только один стиль (приоритетный)»
При этом режиме слово, отформатированное сразу несколькими символьными стилями (гиперссылкой, полужирным и курсивом и т. д.) экспортируется только с однимстилем, причем стиль выбирается согласно списка приоритета стилей: HyperLink, ‹strong›, ‹emphasis›, ‹sup›, ‹sub›, ‹code›, ‹strikethrough›. Одновременно «пометить» слово или фразу несколькими тэгами (например ‹strong›‹emphasis›‹code›пример‹/code›‹/emphasis› текста с ‹emphasis›множественным‹/emphasis› стилем‹strong›) нельзя. Этот режим работает быстрее.
Режим «Все символьные стили»
При этом режиме слово, отформатированное сразу несколькими символьными стилями (гиперссылкой, полужирным и курсивом и т. д.) так и экспортируется – со всеми стилями.
Этот режим включен по-умолчанию.
17. Группа опций «Корректура fb2 кода»: «Убрать “пустышки” ‹/x›‹x›» и «Пробелы внутри ‹/x› ‹x› и ‹x› ‹/x›». Опции позволяют в процессе конвертирования документа существенно уменьшить размер результирующего fb2 файла. Группы тэгов ‹/strong›‹strong›, ‹/sub›‹sub› и т. д. удаляются («пустышки»), а ‹/strong› ‹strong›, ‹/sub› ‹sub›, ‹strong› ‹/strong›, ‹sub› ‹/sub› и т. д. заменяются на пробелы.
18. Опции группы «Служебная область» служат для того, чтобы «подсказать» конвертеру, где быстрее найти информацию-описание книги, отформатированную «Служебными стилями» (данные об Авторах, Переводчиках, Издательстве и т. д.). Кому-то удобнее размещать эти данные в самом верху текста документа, кому-то – в самом низу, а кому-то – где угодно. Здесь важно помнить следующее:
1). Если вам удобно размещать информацию о книге в самом низутекста, то включите опцию Диалога Настроекопции «В любом месте документа)», но при этом, если ваш документ очень большой, на считывание этих данных затратится несколько секунд (перебор всего текста). При маленьких объемах книги время на инициализацию конвертера практически ничтожно, как и в случае опции «Верх Документа (До Названия Книги)».
2). Если вам важна скорость инициализации конвертера, то размещайте информацию о книге в самом верхутекста, при этом включите опцию Диалога Настроекопции «Верх Документа (До Названия Книги)» (задана по умолчанию). На больших документах инициализация конвертера практически мгновенная – перебор только до стиля Названия Документа.
19. Группа опций «Созданный fb2-файл»:
Опция «Запустить созданный fb2-файл (Просмотр)» позволяет запустить созданный fb2– файл в приложении, которое ассоциировано с расширением fb2. Если fb2 файлы запускает по-умолчанию читалка – то она и запустится, если – FB2 редактор – то он и запустится, если xml-редактор, то он и запустится. Если с fb2 не ассоциирована никакая из этих программ, то запустится текстовый редактор, либо браузер, в зависимости от настроек системы. Эта опция удобна тем, что можно сразу после экспорта текста просмотреть, что же у нас получилось. Опция по-умолчанию включена.
Опция «Валидация созданного fb2-файла» позволяет после создания fb2-файла проверить его на соответствие схеме FictionBook.xsd. Опция по-умолчанию включена. Пока валидация работает только для системы Windows.
При нажатии кнопки OK все контролы диалога становятся недоступны (защита от случайного нажатия), запускается процесс инициализации конвертера (из-за Области «Служебных стилей»). Ход работа иллюстрируется прогрессбаром на OOo Writer.
Все настройки формы «Дополнительные настройки» сохраняется в файл settings.txt, который помещается в жестко заданную папку configпакета OpenOffice.org, откуда и загружается. Для Unix – подобных систем – это папка
/home/XXX/.openoffice.org3/user/config/OOoFBTools. Для Windows – это папка C: Documents and SettingsXXXApplication DataOpenOffice.org3userconfigOOoFBTools, где XXX – ваш логин (имя пользователя).
7. Когда требуется редактирование результата в fb2-редакторах
1. Когда вы хотите внести в полученный fb2 документ тэги и возможности, пока отсутствующие в конвертере (см. п.1.4.)
2. Когда вы конвертировали документ с выключенной опцией «Обработка «проблемных» символов»: amp;, › и ‹. Такой невалидный документ, правда, не откроется и в FBE, и в FBW (хотя многие читалки позволяют читать такие книги, просто вырезая эти символы, правда, библиотеки вряд ли примут такие книги!). Править придется только в текстовых редакторах, поддерживающих кодировку, в которую вы конвертировали свой документ.
3. Когда вы отформатировали стилями элементы находятся в документе не в том порядке, в каком они должны идти, согласно схеме FictionBook2.1 Т. е. разбивка структуры документа произведена некорректно (см. п.5.). Документ будет экспортирован, но невалидным.
4. Все предусмотреть невозможно. Поэтому в конвертере вполне могут быть какие– нибудь багги, которые пока не известны, и которые за долгие часы тестирования документов с разной структурой так и не проявили себя (или я просто не заметил).
8. Работа с профилями конвертера
Каждый раз вводить одинаковые данные в поля конвертера довольно утомительно, тем более, если создаешь очень много книг. Поэтому предусмотрена возможность создания и загрузки в нужные поля данных разных профилей.
8.1. Профиль Автора Книги
Очень удобно создать для разных авторов книг свои профили и загружать их, по мере оцифровки их книг. Например, вы оцифровываете все произведения Федора Михайловича Достоевского. Удобнее для каждой его книги просто загрузить его профиль, чем набивать вручную его данные.
На форме конвертера, в группе «Книга» (Title Info)» есть три кнопки для работы с профилем – « Загрузить профиль…», « Сохранить профиль…» и « Очистить поля ввода»:
Для удобства работы создайте на жестком диске папку «Авторы книг» (или как вам нравиться). Здесь будут храниться файлы профиля Авторов книг.
Например, для Достоевского создаем «его» профиль:
В результате все его данные и «его» жанр сохранены в файле. При оцифровке другой его книги просто загружаем его профиль.
Бывает, что один автор работает в разных жанрах. А наш профиль сохраняет один выбранный жанр. Тогда при загрузке профиля этого автора надо просто выбрать нужный жанр.
Кнопка « Очистить поля ввода» нужна для очистки полей Автора книги и его жанра. Иногда бывает полезно…
Важно: При вводе названия файла профиля Автора Книги не ставьте на конце точку! Конвертер вылетает – OpenBasic OOo Writer`a не считывает в этом случае название файла.
8.2. Профиль Автора fb2-документа
Профиль Автора fb2-файла может быть 2-х видов: 1. По-умолчанию (нет возможности указать, куда сохранять); и 2. Произвольный (можно сохранять в любое место).
Профиль состоит из данных Автора fb2-документа (имя, фамилия, отчество, ник, email и сайт), Source OCR, Source URLs и истории создания документа.
На форме конвертера, в группе «FB2 Документ (Document Info)» есть 4 кнопки для работы с профилем: « › ›» и « ‹ ‹» – для загрузки и сохранения профиля по-умолчанию, и «А ‹‹» и «А ››» – для загрузки и сохранения профиля в произвольный txt-файл.
Профиль Автора fb2-файла по-умолчанию
Кнопка « › ›» служит для сохранения данных профиля, а « ‹ ‹» – для загрузки данных профиля в поля конвертера. В обоих случаях появится предупреждение и перезаписи данных в текстовом файле профиля или в полях конвертера (для сохранения и загрузки профиля соответственно). Это – защита от случайного нажатия кнопок и потери информации.
Поскольку эти данные практически не меняются, то для загрузки и сохранения профиля не предусмотрен диалог выбора файла. Файл профиля profile.txtпомещается в жестко заданную папку configпакета OpenOffice.org, откуда и загружается. Для Unix – подобных систем – это папка /home/XXX/.openoffice.org3/user/config/OOoFBTools. Для Windows – это папка C: Documents and SettingsXXXApplication DataOpenOffice.org3userconfigOOoFBTools, где XXX – ваш логин (имя пользователя).
Произвольный профиль Автора fb2-файла
Кнопка « › ›А» служит для сохранения данных профиля в произвольный txt-файл, а «А ‹ ‹» – для загрузки данных профиля в поля конвертера из ранее сохраненного файла.
При старте диалога конвертера автоматически загружается профиль Автора fb2-файла ПО-УМОЛЧАНИЮ. Его можно изменить и сохранить. Если же надо загрузить (и (или) сохранить) профиль другого Автора fb2-файла, то используйте кнопки "A ‹‹" и "›› A".
8.3. Профиль Издательства
Удобно также сделать свои профили и для издательств, а потом их подгружать.
На форме конвертера, в группе «Бумажная Книга» (Publish Info)» есть три кнопки для работы с профилем – « Загрузить профиль…», « Сохранить профиль…» и « Очистить поля ввода»:
Так же, как и для профиля Автора Книги создайте на жестком диске папку
«Издательства» (или как вам нравиться). Здесь будут храниться файлы профиля Издательств.
Кнопка « Очистить поля ввода» нужна для очистки полей Бумажной книги. Это так же иногда бывает полезно…
Важно: При вводе названия файла профиля Издательства не ставьте на конце точку! Конвертер вылетает – OpenBasic OOo Writer`a не считывает в этом случае название файла.