pars.nextltem(curr_para).applyStyle(pS[pSA['Table Footer']],true) if (table_W==Obj.w.wide)
pars.itemByRange(startP, endP).leftlndent = 0 alert("Готово!")
)
else
{
alert("Курсор не в таблице!")}
}else{
alert("Нет нужных стилей абзаца!")}
Перечисляем необходимые параметры: отступы от краев, ширину окантовки, задаем ширину колонок:
DEFAULT_SIDE_INSET = DEFAULT_STROKE_WIDTH = "0.5 mm" ;
VERTICAL_IN SET = "1 mm"; narrow_colurnn_width = "120 mm"; wide_column_width= "174 mm"; Используем нестандартный метод задания параметров- в явном виде - в миллиметрах, что зачастую более наглядно. Поскольку в таком случае они будут восприняты уже не в виде чисел, а как текстовые строки, оформим их соответствующим образом, заключив с обеих сторон в кавычки. Интересно, что InDesign понимает такую запись без каких-либо дополнительных действий с нашей стороны - правильно считывает единицы измерения и устанавливает требуемые значения.
Также нам придется использовать цвета для заливки ячеек таблицы. В отличие от названия стиля, который непосредственно в скрипте задать нельзя (как мы его видим в палитре Paragraph Styles, например, "Table"), с цветом ситуация значительно проще. InDesign понимает их названия такими, какими мы видим их в окне Swatches. Таким образом, для цвета содержимого таблицы можно записать: alterFill = "alterFillColor"; и для шапки:
headerFill = "headerFillColor"; Разумеется, эти цвета перед запуском скрипта должны присутствовать в публикации. Устанавливаем ссылки на объекты, с которыми будем работать:
myDocument = арр.activeDocument; Стандартная строка для работы с любым выделенным объектом:
mySelection = myDocument.selection[0]; Для упрощения требований к начальным условиям договоримся, что таблицу будем обозначать установкой в нее курсора (необходимо, если на странице несколько таблиц). При этом для обращения ко всей таблице получим:
myTable = mySelection.parent.parent; Прямой родитель у точки вставки - ячейка, а родитель у ячейки - таблица. У таблицы родительским объектом будет текстовый фрейм, в котором она находится.
myTextFrame = myTable.parent; Для использования стилей публикации создаем ссылки на них:
parStyles = myDocument.paragraphStyles; Следующий шаг-- проверка публикации на наличие требуемых стилей - это позволит избежать возникновения ошибки в случае, если какого-то необходимого стиля не существует. Перебираем по очереди все стили и в случае нахождения нужного устанавливаем соответствующий признак. InDesign хранит стили не по названиям, как цвета, а по их индексам, поэтому присвоить стиль непосредственно по его названию не получится. Соответственно, запоминать будем индексы стилей, по которым в дальнейшем и станем обращаться.
Создадим временное хранилище для них:
paragraphStylesStorage = new Array О;// Хранилище для индексов стилей flag = new Array О; // Здесь будем хранить признаки наличия
// требуемых стилей.
Запоминаем индексы используемых стилей (листинг 8.13).
| Листинг 8.13. Сохранение индексов используемых стилей
for (i=0; i< parStyles.length; i++){ switch(parStyles[i].name)