Пример чтения из файла приведен в листинге П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-файле.