if(mySelection.constructor.name = "InsertionPoint" II mySelection.constructor.name == "Paragraph")

Сразу же задаем параметры:

curr_para.tables.add({columnCount:2, bodyRowCount:1, height:"50 mm", width: mySelection. textFrames [0]. geometricBounds [3 J -mySelection.textFrames[0].geometricBounds[1]}}

На данный момент в месте вставки курсора нами создана таблица высотой 50 мм, с одной строкой и двумя колонками. Ширина ее определяется габаритами текстового фрейма, в котором таблица расположена. Напомню, координаты текстового объекта задаются массивом данных, в котором по очереди идут координаты верхней, левой, нижней и правой границ, т. е.

Тор = textFrame.geometricBounds[0]

Left = textFrame.geometricBounds[1]

Bottom = textFrame.geometricBounds[2]

Right = textFrame.geometricBounds[3]

Задаем свойства ячеек:

for(i=0; i< myTable.cells.length; i++){ with(myTable.cells[i]){ toplnset = "1 mm" bottomlnset = ”1 mm" rightlnset = "1 mm" leftlnset = "1 mm" leftEdqeStrokeWeight = "0.5 pt" topEdgeStrokeWeight = "0.5 pt" bottomEdgeStrokeWeight = "0.5 pt" rightEdgeStrokeWeight = "0.5 pt" Затем задаем строку заголовка (шапку) - элемент таблицы, который автоматически повторяется в местах ее разрыва (например, при продолжении таблицы на следующей странице). Интересно, что если при обычной верстке строка заголовка создается путем конвертирования существующей строки (Convert То Header Row), то в скриптинге она задается непосредственно, и InDesign сверху таблицы добавляет пустую строку-шапку: myTable.headerRowCount = 1

Рассмотрим некоторые операции над уже существующими таблицами.

8.1.1. Объединение ячеек

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

Листинг 8.2. Объединение ячеек

with (myTable) {

// Объединение всех ячеек в первой колонке myTable.cells[0].merge(columns[0].cells.item(-1));

// Объединение последних двух ячеек в первой строке rows [0] . cells . iteiti(-2) .merge (rows [0] . cells. item(-l) ) ;

// Объединение последних трех ячеек во второй колонке

// при условии, что в колонке всего три строки

columns[1].cells.item(-l).merge(columns[1].cells.item(-2)) ;

columns[1].cells[0].merge(columns[1].cells[1]) ;

II Объединение двух последних ячеек в строке 3 rows[2].cells.item(-2).merge(rows[2].cells.item(-l}) ;

}

8.1.2. Разбиение ячеек

Разбиение ячеек является операцией, противоположной их объединению, в результате которой общее количество ячеек в таблице увеличивается. Как и при объединении, разбиение ячеек- операция постепенная, за один шаг из одной ячейки можно получить только две (листинг 8.3).

! Листинг 8.3. Разбиение ячеек

// Таблица myTable должна содержать как минимум 4 строки и 4 колонки myTable.cells.item(0).split(HorizontalOrVertical.horizontal); myTable.columns.item(0).split(HorizontalOrVertical.vertical); myTable.cells.item(0).split(HorizontalOrVertical.vertical}; myTable.rows.item(-1).split(HorizontalOrVertical.horizontal); myTable.cells.item(-l).split(HorizontalOrVertical.vertical);


⇐ вернуться назад | | далее ⇒