Пример чтения из файла приведен в листинге П5.2.

Листинг П5.2. Чтение из файла

INIfile = File(aD.filePath + "/test.txt"); 11 Указатель на файл

// Считывание файла и передача ссылки на его содержимое переменной // listFolder для дальнейшего использования INIfile.open("г"); II Открываем файл для чтения listFolder = INIfile.read()

II Закрываем файл INIfile.close(); Еще пример чтения из файла (листинг П5.3).

Листинг П5.3. Чтение из файла построчно

INIfile = File(aD.filePath + "/test.txt"); // Указатель на файл

INIfile.open("r"); // Открываем файл для чтения

// Считывание содержимого файла построчно и передача его переменной // listFolder для дальнейшего использования while (!INIfile.eof){

listFolder = INIfile.readln()

}

INIfile.close(); // Закрываем файл

П5.4. Получение ссылки на скрипт

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

InDesign поддерживает включение кода внешнего скрипта непосредственно в текущий (include), при этом используемый язык должен быть одинаковым. То есть если используется JavaScript, то включаемый таким образом скрипт тоже должен быть написан на данном языке. Второй вариант- более универсальный- заключается в подгрузке скрипта, написанного на любом из поддерживаемых InDesign языков - JavaScript, AppleScript, Visual Basic. Это дает гораздо более широкие возможности по организации автоматизированных рабочих мест, поскольку позволяет использовать в полной мере всю мощь технологии ActiveX (взаимодействие с пакетами MS Office, доступ к Интернету (MSXML2.XMLHTTP), доступ к двоичным базам данных на основе ADODB.Stream и т. д.)

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

activeScript.

myScript = арр.activeScript;

alert("Название скрипта: "+ myScript)

myParentFolder = File(myScript).parent alert("Расположен в папке: "+ myParentFolder)

Свойство имеет смысл только при запуске скрипта с таким кодом из палитры Scripts, в ExtendScript обращение к нему выдаст ошибку. Поэтому рекомендуется использовать традиционную для JavaScript конструкцию для обработки ошибок:

try {арр.activeScript}

catch (err) (File (err.fileName)}

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

П5.5. Запуск связанного скрипта

Ведомый скрипт может быть запущен из основного через метод doscript о. doScript(непосредственно код скрипта) [, язык] [, параметры])

Синтаксис использования разных языков:

ScriptLanguage.applescript ScriptLanguage.javascript ScriptLanguage.visualBasic

Пример, иллюстрирующий запуск скрипта из родительского скрипта:

var myScriptParameters = new Array("Первый переданный параметр", "Второй переданный параметр")

var myScript = "alert(У'Первый параметр: \" + arguments[0] + \"Второй параметр: \" + arguments[1])" арр.doScript(myScript, ScriptLanguage.applescript, myScriptParameters)

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

"первая + "вторая" " недопустимо. Нужно использовать либо одинарные кавычки ("), что обычно применяется, если вложенность не превышает двух уровней:

"первая + 'вторая' " либо использовать символ еэсаре-последовательности (\), что является универсальным вариантом для вложенности любой глубины:

"первая + \"вторая\" " Чтобы запустить связанный файл скрипта, предусмотрен метод doScriptFile о.

П5.6. Получение результата работы скрипта

Возвращаемый результат хранится в объекте scriptArgs. При этом вызванный скрипт сначала записывает в него данные через метод setvaiueo, а потом принимает через getvaiue ().

ПРИЛОЖЕНИЕ 6

Описание компакт-диска

Перечень файлов, размещенных на компакт-диске, прилагаемом к этой книге

Файл

Описание

Материалы к главе 3

dialog.jsx

Создание диалогового окна

Материалы к главе 4

Printjsx

Создание пользовательского набора предустановок для печати

export_sel.jsx

Экспорт выделенных объектов

Transform.jsx

Трансформации объектов

Материалы к главе 5

Colontitle.jsx

Расстановка скользящих колонтитулов

Материалы к главе 6

Tabulation.jsx

Установка позиций табуляции

Материалы к главе 7

Grep.jsx

Автоматический корректор

Материалы к главе 8

Word.jsx

Форматирование таблицы, импортированной из Word

Материалы к главе 9

Resolution.jsx

Поиск изображений с разрешением ниже заданного

Import.jsx

Импорт многостраничного PDF-файла

Catalog.jsx

Формирование каталога изображений

Auto.jsx

Автоматическое создание фреймов для иллюстраций

(окончание)

Файл

Описание

Материалы к главе 10

Corners.jsx

Создание угловых эффектов у объектов

Материалы к главе 11

ldd_1.jsx, ai.jsx

Проверка публикации

Кроме того, методы и свойства основных объектов приведены в одноименном PDF-файле.


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