Показать или спрятать менюTRichView.ru
English | Deutsch | Español | Русский

  Таблицы в TRichView

Вставка таблиц

В документы TRichView можно вставлять таблицы, содержащие форматированные документы в каждой ячейке. Глубина вложенности таблиц (вставка одной таблицы в ячейку другой) не ограничена.

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

Таблица с выделенными ячейками


Внешний вид таблиц (рамки, разделительные линии, фон)

TRichView предоставляет богатый выбор средств для настройки внешнего вида таблиц.
Цвет задаётся для рамки вокруг таблицы, для ячеек по умолчанию, для конкретных ячеек. Более того, в ячейках могут находиться абзацы, имеющие свои собственные рамки.

Рамки бывают двух видов — плоские (одного цвета) и объёмные (выпуклые или вдавленные).

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

Цвет и степень прозрачности фона задаётся как для таблицы в целом, так и для её ячеек. Отдельные стороны рамок ячейки могут быть скрыты.

Таблицы в TRichView построены по модели HTML. В этой модели таблица и каждая ячейка имеют свои рамки, отличные друг от друга. Рамки соседних ячеек могут касаться.
Множество редакторов RTF используют другую модель рамок таблиц, в которой рамки ячеек рассматриваются как линии в середине пространства между ячейками. Такие рамки могут быть и в таблицах TRichView, если задать отрицательное расстояние между ячейками.

Имеется возможность задать вертикальное выравнивание содержимого ячейки (по верхней, нижней границе ячейки или её середине) или повернуть его на 90°, 180° или 270°.

Фоновый рисунок, полупрозрачная заливка фона, вертикальный английский текст в таблице

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

Прозрачные фоновые рисунки в ячейках накладываются на фоновый рисунок таблицы


Задание высоты и ширины

Как было сказано выше, таблицы в TRichView построены по модели HTML. Ширина столбцов вычисляется компонентом на основании ширины отдельных ячеек, заданной в абсолютных значениях (пикселях, твипах* или EMU**) или в процентах от ширины таблицы.

Аналогично, ширина таблицы задаётся в абсолютных значениях (пикселях, твипах или EMU) или процентах от ширины документа.

Высота строки определяется высотой самой высокой ячейки в ней, которая вычисляется исходя из её содержимого, или может быть задана в абсолютных значениях (пикселях, твипах или EMU). Имеется опция игнорирования высоты содержимого (переключение режимов заданий высоты ячейки между "высота не менее..." и "высота равна...).

Ширина столбцов и высота строк изменяется мышью.

* твип равен двадцатой части типографского пункта, или 1/1440 дюйма
** EMU (English Metric Unit) равен 1/914400 дюйма и 1/36000 мм

Пример использования таблиц в компоненте TRichView в e-Office Direct от toolsfactory


Отмена и возврат операций (Undo and Redo)

Если таблица вставлена в редактор (TRichViewEdit или TDBRichViewEdit), все операции над этой таблицей могут быть отменены, а затем возвращены обратно.

Отменяемые операции включают: ввод текста в ячейки таблицы, изменение размеров мышью, объединение ячеек, добавление и удаление строк и столбцов, изменение внешнего вида (цветов, рамок, отступов и т.д.)


Импорт и экспорт

Таблицы могут быть импортированы в составе документа RTF (Rich Text Format) и DocX (Документ Microsoft Word). TRichView поддерживает импорт таблиц из файлов RTF, сохранённых как по старым стандартам (Microsoft Word 6 and 97), так и по новым стандартам (включающим множество свойств, заимствованных из HTML). Компонент проделывает очень нетривиальную работу, преобразовывая таблицы из формата RTF/DocX во внутреннюю HTML-модель.

Таблицы экспортируются в DocX, RTF, HTML (с или без Cascading Style Sheets (CSS)), Markdown, текстовые файлы.


Печать

Таблицы выводятся на печать как часть документа TRichView. Если некоторая таблица не помещается на одну страницу, она печатается на нескольких.

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

Ограничение: в то время как TRichView поддерживает разрывы страниц внутри ячеек, ScaleRichView может разделять таблицы только между строк.


Примеры

Дополнительная информация с форума поддержки (на английском):