OpenOffice: Создание книги в формате fb2

Изучать C# сидя перед монитором компьютера удобно (и необходимо) только тогда, когда нужно открывать Visual Studio и рассматривать примеры программ «на практике». Но гораздо удобнее читать теорию с экрана электронной книги, лежа на диване или где-нибудь в поездке. Но в этом случае приходится сталкиваться с гораздо большими проблемами, одна из которых — это отсутствие нужных книг в формате fb2.
Через поиск я нашел статью на сайте хабрахабр, где автор предлагал автоматическую конвертацию книг в графический формат. Но мне это не помогло бы, т.к. необходимая мне книга была оптимизирована под формат примерно A4, а размер экрана PocketBook 626 всего 6 дюймов. Так что пришлось создавать книгу в формате fb2. Долго, но в принципе необходимо, т.к. нормальных альтернатив я не нашел (можно было читать прямо в формате pdf, но он очень плохо отображался на читалке, причем без переносов).

Для создания fb2 кроме наличия исходного текста книги нужно установить расширение для OpenOffice:
1. Качаем и устанавливаем OpenOffice (если его нет на компьютере).
2. Скачиваем и распаковываем OOoFBTools
3. В OpenOffice заходим в Меню и выбираем Сервис -> Управление расширениями… -> Добавить…
4. Выбираем файл OOoFBTools.oxt и устанавливаем его. После перезагрузки OpenOffice в меню должен появиться пункт OOoFBTools

После того, как все инструменты для создания книги подготовлены, можно начать ее создание. Сразу отмечу, что процесс этот совсем не быстрый, но при некоторой практике можно создавать по несколько сотен страниц формата А4 за выходные, что в принципе вполне достаточно, чтобы подготовить чтиво на всю неделю.
(Для начала можно потренироваться на одной странице).
1. Для удобства создаем в OpenOffice.Writer свой формат страницы, который больше похож на экран электронной книги: Формат -> Страница… -> Формат бумаги «Пользовательский…» — примерно 8,80см на 12,50см и поля 0,30см справа и слева и 0,50см сверху и снизу.
2. Копируем текст с PDF-файла и вставляем его в новый документ OpenOffice Writer. Вставлять лучше через «Вставить как…» или с помощью комбинации клавиш Ctrl+Shift+V и выбрать «Текст без форматирования»
3. Далее вызываем Панель FB2-стилей: Меню -> OOoFBTools -> «Панель fb2 стилей…»
4. Запускаем Меню -> OOoFBTools -> «Корректор текста…»
В данной версии fb2tools корректор применяется и для блока текста, выделенного, как листинг (code), поэтому во избежании ненужных удалений, лучше убрать отмеченные пункты (также я убрал удаление разрывов страниц):

5. Для сокращения ручного труда запускаем пункт меню OOoFBTools -> Склейка разрыва строк и абзацев…

6. Теперь нужно вручную пробежаться по тексту, для выявления пропущенных разрывов строк.
7. После этого можно с помощью панели стилей выделить части текста:

  • Книга — Название
  • Книга — Автор
  • Заголовок 1 (для названия Глав книги)
  • Заголовок 2 (для названия подразделов)
  • Цитата — Подзаголовок (для выделения слова Примечание)
  • Цитата (для выделения текста Примечания)
  • code (для выделения листингов программ)

8. Если в книге присутствуют фрагменты кода (листинги), то нужно выбрать пункт меню OOoFBTools -> Автоматическая разметка листингов программ
9. После того, как к тексту применены все необходимые стили, можно сформировать средствами OpenOffice «Оглавление». В него автоматически будет добавлен весь текст, выделенный стилем «Заголовок» и добавлены номера страниц.
10. Перед первым запуском Экспорта в FB2, нужно настроить параметры: Меню -> OOoFBTools -> Настройки Export2FB21…

11. Помимо этого нужно будет один раз заполнить «Редактор fb2 свойств…»
12. Теперь выбираем Меню -> OOoFBTools -> Экспорт в fb2 формат… и нажимаем кнопку «Экспорт».
Результат страницы с таблицей и примечанием:

С листингом программы:

На PocketBook:

Более детальная статья по OOoFBTools здесь и здесь.

P.S. К сожалению, OOoFBTools это всего лишь скрипт на Visual Basic, поэтому автоматически правильно скорректировать текст на 100% не получится и придется вручную удалить символы абзаца ¶ или вставить его там, где это нужно. Для удобства нужно включить в OpenOffice.Writer отображение Непечатаемых символов (Ctrl+F10 ).
Пример с символами абзаца ДО редактирования вручную.

Пример с символами абзаца ПОСЛЕ редактирования вручную.

Нужно удалять ВСЕ символы абзаца, за которыми следует текст, который начинается с маленькой (строчной) буквы. Бывают конечно исключения, например, когда текст начинается с цифр, но такое бывает крайне редко.