KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Вадим Кузнецов - Описание работы пакета OOoFBTools Создание книг FB2

Вадим Кузнецов - Описание работы пакета OOoFBTools Создание книг FB2

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн "Вадим Кузнецов - Описание работы пакета OOoFBTools Создание книг FB2". Жанр: Программирование издательство неизвестно, год неизвестен.
Перейти на страницу:

4. Особенности работы с текстом

4.1. Работа с таблицами

4.1.1. Виды таблиц

Существует два вида таблиц – простые и сложные. Простые – прямоугольная матрица Row x Col. Сложные – в ячейке могут быть вложены другие строки или таблицы.

Конвертер корректно экспортирует только простые таблицы. Экспортируются и сложные таблицы, но не все сложные таблицы экспортируются согласно их «геометрии». Сложные таблицы, где в ячейку вложена другая таблица – игнорируются (ввиду чрезвычайной сложности создания алгоритма…).

4.1.2. Название таблицы

При желании можно дать таблице название (сверху или снизу таблицы). Это название также будет экспортироваться, с учетом форматирования.

Делается это так.

На нужной таблице кликните правой клавишей мышки и выберите «Название».

В появившемся диалоге «Название» введите название таблицы и выберите позицию этого названия – сверху или снизу:

В результате получим следующее:

В названии имеется текстовое поле со сквозной нумерацией таблицы – оно тоже экспортируется.

4.1.3. Задание числа заголовков

Если наша таблица содержит заголовок, или несколько, то надо задать число строк, из которых он будет состоять, и включить опцию, сигнализирующую, что заголовок есть.

Для этого вызываем диалог «Оформление таблицы» через меню «Таблицы», нажав пункт меню «Свойства таблицы…». Либо через контекстное меню по клику правой клавиши мышки – пункт «Таблица»

На рисунке показано, что таблица имеет Заголовок из 2-х верхних строк.

Галочка “Повторять заголовок” стоять должна обязательно! Это можно сделать и по- другому, встав на таблицу, и выбрав пункт меню «Повторять заголовки столбцов» в меню

«Таблица». Только в этом случае можно будет определить, что в таблице действительно есть заголовки.

4.1.4. Важен порядок вставки таблиц в документ

В связи с особенностью алгоритма конвертера очень важно, в какой последовательности вставляются таблицы в документ. Если их вставлять не по-порядку, по ходу текста, то после конвертации таблицы могут быть перепутаны местами!

4.1.5. Выравнивание строк ячеек таблицы

Можно выравнивать строки в каждой ячейке по ширине, как вам угодно – конвертер автоматом выравнивает строки для каждой ячейки в результирующем файле. По высоте – пока задается в «Настройках» (пока), и применяется ко всем ячейкам одинаково.

Атрибуты align, valign для тегов tr, th, td таблицы сделаны «не обязательными». Т. е. в Настройках конвертера их можно отключить (выбрав из списков пустое значение). В этом случае эти атрибуты в fb2 файл заноситься не будут. Это же реализовано и для «пустых» ячеек таблицы (нет ни одного абзаца), даже при выбранном выравнивании строк в Настройках. Выравнивание по ширине в любом случае «считывается» со строк таблиц автоматически.

4.1.6. «Пустые» ячейки таблицы

Иногда требуется, чтобы в таблице были ячейки с «пустым» содержанием. Конвертер позволяет экспортировать и такие ячейки таблицы. После экспорта в fb2 документ на месте этой «пустой» ячейки будет ‹th/› (для «пустого» заголовка) или ‹td/› (для «пустой» ячейки).

4.1.7. Структура элементов таблицы

Таблица формата fb2 имеет следующую структуру:

4.1.7.1. Тэг table

В тэг table вложен тэг tr – «контейнер» для строк заголовков (тэг th) или данных (тэг td) всех столбцов ячеек таблицы. Тэг table может содержать от 1 до бесконечности обязательных тэгов tr. В свою очередь, тэг tr может содержать от 1 до бесконечности обязательных тэгов th или td.

Например, есть такая таблица:

В fb2 формате это выглядит так:

‹table›

‹tr›

‹th align="1еft"›Заголовок 1:1 ‹/th›

‹th›Заголовок 1:2‹/th›

‹th align="right"›Заголовок 1:3‹/th›

‹/tr›

‹tr›

‹td align="left"›2:l‹/td›

‹td align="right"›2:2‹/td›

‹td›

‹/tr›

‹/table›

4.1.7.2. Тэг th

Тэг th так же имеет «свои» атрибуты (см. схему ниже) и содержит «отформатированные» символьными (inline) стилями данные-заголовки ячейки таблицы.

Тэг th может содержать от 0 до бесконечности «отформатированых» символьными стилями заголовков ячеек таблицы. Т. е. Тэг th может быть «пустым», закрытым:

‹table›

‹tr›

‹th/›

‹th› ‹/th›

‹/tr›

‹/table›

А может и содержать заголовки ячеек:

‹table›

‹tr›

‹th align="left"›Заголовок l:l‹/th›

‹th align='' center"›Заголовок 1:2‹/th›

‹/tr›

‹/table›

Атрибуты align и valign служат для выравнивания заголовка по ширине и по высоте соответственно. Тэг имеет еще и другие атрибуты.

Схема тэга дана th ниже:

4.1.7.3. Тэг td

Тэг td так же имеет «свои» атрибуты (см. схему ниже) и содержит «отформатированные» символьными (inline) стилями данные-строки ячейки таблицы.

Тэг td может содержать от 0 до бесконечности «отформатированых» символьными стилями строк ячеек таблицы. Т. е. Тэг td может быть «пустым», закрытым:

‹table›

‹tr›

‹td/›

‹td› ‹/td›

‹/tr›

‹/table›

А может и содержать заголовки ячеек:

‹table›

‹tr›

‹td align=

‹td align=

‹/tr›

‹/table›

Атрибуты align и valign служат для выравнивания строки по ширине и по высоте соответственно. Тэг имеет еще и другие атрибуты.

Схема тэга td дана ниже:

4.1.8. Экспорт таблиц, ячейки которых могут содержать разное число абзацев

Формат FictionBook поддерживает и простые таблицы, по типу «прямоугольных» матриц, и некоторые сложные таблицы, где строки или столбцы могут быть разбиты. Простая таблица будет экспортирована «на ура» (число строк и колонок – не ограничено):

Более сложные таблицы тоже экспортируются:

Формат fb2 не поддерживает таблицы, вложенные в ячейки другой таблицы (что практически всегда можно увидеть на html файлах, скаченных с сайтов, форумов):

С другой стороны, согласно формату fb2 каждый тэг th и td может содержать только один абзац. Т. е. такая таблица:

«превратится» в fb2 формате в такую (абстрактно):

Т.е. все абзацы в ячейке «сливаются» в одну строку.

А таких таблиц можно встретить довольно часто (техническая, научная и др. литература). Как же сконвертировать ТАКИЕ «прямоугольные» таблицы в fb2 файл?

Конвертер позволяет это сделать за счет добавления так называемых «виртуальных» строк и ячеек. Т. е. все абзацы в ячейке (например 5 абзацев) становятся строками (5 строк).

Например, у нас есть такая таблица с несколькими абзацами в ячейках, а некоторые ячейки пустые:

Конвертер создаст fb2 код таблицы, которая выглядеть в читалках будет так:

Т.е., вместо 3 строк мы получили 8, разбив «многоабзацевые» ячейки. Это и есть так называемые «виртуальные» строки.

Чтобы все это «пощупать», сконвертируйте тестовый файл ExportToFB21_Test.odt и посмотрите результат (fb2 код в редакторе и «внешний вид» таблиц в читалке). Для Windows лучше всего (на сегодняшний день) отображает таблицы с выравниванием ячеек Cool Reader 2.66. Она корректно «отбивает» колонки таблиц. Выберите в ней в настройках скин default для того, чтобы увидеть границы ячеек.

4.1.8.1. Ячейки: экспорт абзацев как строк и экспорт абзацев как одну строку

Конвертер по умолчанию экспортирует многоабзацевые ячейки как абзацы. Но, иногда надо, чтобы абзацы определенной ячейки сконвертировались, как одна строка (слить их в один, разделив пробелом).

Например, есть таблица:

В 1-й ячейке два абзаца по сути дела выражают одно и тоже. После экспорта мы получим такую таблицу:

Эта таблица выглядит хорошо. Но вот если во втором столбце будет всего один абзац, то тогда после экспорта таблица будет выглядеть уже так:

Такая таблица уже «не очень»: Сразу непонятно, к чему относится «Совет» – напротив него – пустая ячейка. Было бы значительно лучше, если бы таблица выглядела так:

Как раз для этих целей в конвертере и предусмотрен режим экспорта всех нужной ячейки как слившиеся через пробел абзацы в одну строку. Для этого надо «заблокировать» нужную ячейку: клик правой клавишей мышки на нужной ячейке, выбираем Ячейка – › Защищено.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*