. Листинг 8.11. Скрипт для InDesign

mySelection = арр.selection[0] ;

// Поскольку Word в конце файла ставит знак абзаца (такова его // особенность), нам его придется удалять для корректности findO = /л |(\n )|\n$/g; replaceO =

// Параллельно удаляем лишние пробелы, чем так часто грешат переводчики findl = / +/g; replacel = " "

// Считываем файл, сохраненный Word fName = File("D:/temp.txt"); fName.open("r"); myLine = fName.read()

// Получаем массив с содержимым ячеек arr = myLine.split("\t") ;

// Если переводчик no какой-то причине решил использовать

// не табуляцию, а оформил текст в виде таблицы - ничего страшного,

// напишем еще пару строк.

// Если массив не получился, то пробуем разные варианты, if (arr.length = 1)

arrl = myLine.split("\r"); if (arrl.length = 1)

arr = myLine.split("\n");

II После предыдущих операций мы в любом случае получим массив //из содержимого ячеек

for (i=0; i< mySelection.cells.length; i++) {

// Проверяем, чтобы не было ячеек, объединенных по горизонтали -

// иначе возникнут проблемы if (columnSpan==l){

// Проводим замену г = arr[i].replace(findl, replacel); г = r.replace(findO, replaceO)

// Первая буква всегда должна быть заглавной

res = г.substring(0,1).toOpperCase() + г.substring(1)

mySelection.cells[i].contents = res;

// Поскольку текст на разных языках может существенно отличаться // по количеству знаков (например, английский, как правило,

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

// при этом InDesign самостоятельно рассчитывает необходимую

// высоту ячеек

with (mySelection.cellsfi]) {

if ((rowSpan==l) && (lines.length>0)) { height = 0

}

}

}

fName.close();

} else (

alert("Среди выделенных ячеек есть объединенные по горизонтали - с такими скрипт работает некорректно. Действие отменено.")

}

Таким образом, творчески подходя к решению задачи, можно обойти некоторые ограничения, накладываемые текущей реализацией механизма скриптин-га в InDesign, как это было продемонстрировано в предыдущем примере.

8.4. Форматирование таблицы

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

Как извести», при импорте документа Word в InDesign параметры ячеек теряются, типичный результат показан на рис. 8.3, вверху. Наша задача- из этого полуфабриката создать полноценную таблицу, результат представлен на рис. 8.3, внизу.

Стили, используемые при оформлении таблицы

Рис. 8.3. Стили, используемые при оформлении таблицы

Предположим, что верстка двухколоночная. Предусмотрим, чтобы таблицы были двух видов: узкие - в одну колонку, и широкие - занимающие обе полосы набора. Далее для заливки строк будем использовать два чередующихся цвета, цвет окантовки у всех ячеек выберем белым. Внутренние отступы с боков зададим в 1 мм, по вертикали - 0,5 мм (см. рис. 8.2, внизу). Для текста в шапке таблицы будем использовать стиль абзаца MyTable Hdr, для остального текста- Table contents. Кроме того, обеспечим выключку во всех ячейках, кроме крайней правой колонки, по центру и отцентрировано по вертикали. Что касается самой левой колонки, то поставим задачу, чтобы ее ширина была такой, чтобы не было переноса текста (в случае, если таблица занимает две колонки текста), ну а в случае слишком длинного текста, ограничим ее ширину каким-то логичным значением. Что касается форматирования текста, то абзац перед таблицей будет нести стиль Table Header, абзац с таблицей- Table, а следующий абзац под таблицей- Table Footer. Таким образом, после выполнения скрипта мы получим полностью отформатированную по нашим правилам таблицу, что невозможно даже в самом современном InDesign, не говоря уже о тех пользователях, которые работают с InDesign CS2.


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