Мне нужно заменить некоторые изображения в документе InDesign заданным файлом. Это происходит с использованием сервера InDesign, но сценарий почти такой же, как с обычным InDesign, за исключением того, что взаимодействие с пользователем невозможно.Как заменить графику данным файлом в InDesign через скрипт?
У меня есть документ InDesign, идентификатор прямоугольника, содержащего какое-либо изображение, и путь к новому изображению, которое должно заменить изображение.
Изображение должно быть заменено, но настройки, подобные FitOptions и т. Д., Должны оставаться неизменными. Кроме того, новый файл должен быть встроен в документ InDesign. Уже есть какой-то код такого рода работ:
function changeImages(doc) {
var arrayLength = changeImage.length;
for (var i = 0; i < arrayLength; i++) {
var fr = doc.textFrames.itemByID(1 * changeImage[i].id);
if (!fr)
continue;
var file = File(imagePath + changeImage[i].file);
fr.place(file);
fr.fit (FitOptions.CONTENT_TO_FRAME);
fr.fit (FitOptions.PROPORTIONALLY);
fr.fit (FitOptions.CENTER_CONTENT);
}
}
Это не кажется правильным. Почему он использует doc.textFrames
, когда объект является прямоугольником? Я действительно запутался, что это даже работает.
Также он просто устанавливает некоторые FitOptions, но я хочу сохранить существующее.
Я очень новичок в написании сценариев InDesign, поэтому я потерялся здесь. Я читаю docs и other resources, но я смущен. например, почему существует doc.textFrames.itemByID
, но ничего подобного для других фреймов? Нужно ли мне перебирать doc.allPageItems
и сравнивать идентификаторы?