Вот загадка, которую я обнаружил.«Не открыта окно документа»
У меня есть скрипт, который открывает файл в InDesign, выполняет некоторую работу с ним, а затем закрывает его. Чтобы ускорить его, я выключил отображение файла с помощью false
аргумента при открытии файла, например, так:
var document = app.open(oFile, false);
Иногда, при выполнении некоторой работы на открытом файле, то сценарий может понадобиться нужно изменить размер определенной страницы из 11 дюймов в высоту до 12,5 дюймов, таким образом:
if (padPrinted) {
for (var p = 0; p < outputRangeArray.length; p++) {
var padPage = document.pages.item(outputRangeArray[p]);
if (padPage.bounds[2] - padPage.bounds[0] === 11) {
padPage.select();
var myY1 = padPage.bounds[0] -= 0.75;
var myX1 = padPage.bounds[1];
var myY2 = padPage.bounds[2] += 0.75;
var myX2 = padPage.bounds[3];
padPage.reframe(CoordinateSpaces.INNER_COORDINATES, [[myX1*72, myY1*72], [myX2*72, myY2*72]]);
}
}
}
Это работает безупречно для меня в течение некоторого времени, но теперь это иногда ошибки на линии padPage.select()
с сообщением:
Окна документов не открыты.
Если я вернусь к строке, которая открывает файл и удаляет аргумент false
, тогда скрипт работает нормально.
Итак, я хотел бы знать, есть ли способ обойти это. Я хотел бы открыть документы, не показывая их, но все же имею возможность изменять размер страницы, когда мне это нужно. Есть идеи?
Согласно странице 41 [Adobe InDesign CS6 Scripting Guide: Javascript] (http://wwwimages.adobe.com/www.adobe.com/content/dam /Adobe/en/devnet/indesign/sdk/cs6/scripting/InDesign_ScriptingGuide_JS.pdf), «Прежде чем изменять размер страницы или применить преобразование на страницу, вы должны выбрать страницу». – Sturm
@Sturm Мой ответ был слишком длинным, поэтому вместо этого я отредактировал свой ответ. – dln385
Вот и все. Я помню, как пытался использовать метод '.reframe()' до этого без успеха, но метод '.select()' на странице заставлял его работать. Или, может быть, я просто неправильно помню. Независимо от того, что вы правильно отредактировали на странице 42, я никогда не замечал пропусков '.select()' в ней раньше. Кроме того, спасибо за то, что вы поймали это '+ =' и '- =' gaffe. Сначала я попытался заставить его работать, не назначая их переменным, но вскоре обнаружил, что 'bounds' доступны только для чтения и забывают удалить оператор присваивания после этого. Еще раз спасибо, dln385, ты потрясающий! – Sturm