Почему textBoxes.add() создает графический контент, а не текстовый?

Статус
Закрыто для дальнейших ответов.

andrew.folio

Участник
Топикстартер
Сообщения
28
Реакции
40
В Indesign CS6 появилась возможность работы с заполняемыми полями для Акробата. Столкнулся с тем, что не мог задать текстовое содержимое вновь созданному textBox. Взял пример из официального Adobe® InDesign® CS6 Scripting Guide: JavaScript (с. 56) — не работает:
Код:
var myTextBox = myDocument.pages.item(0).textBoxes.add
(
{geometricBounds:[15, 40, 20, 75], contents:SpecialCharacters.autoPageNumber}
);

Выяснил, что textBoxes.add() у меня почему-то создает графический объект, а не текстовый как ожидалось. Соответственно задать текстовое значение не получалось. Переписал так:
Код:
var myTextBox = myDocument.pages.item(0).textBoxes.add
(
{geometricBounds:[15, 40, 20, 75]}
);

myTextBox.pageItems[0].contentType = ContentType.TEXT_TYPE;
myTextBox.pageItems[0].contents = SpecialCharacters.autoPageNumber;

Теперь желаемое достигнуто. Но зачем textBoxes.add() создает графический ContentType так и не понял.
 

SlavaBuck

Участник
Сообщения
75
Реакции
30
Первая мысль: к объекту SpecialCharacters применяется некий стиль по умолчанию и этот стиль - объектный, а не символьный/текстовый. Возможно этот стиль у вас в момент вставки выделен в палитре стилей... однако, если и так, не думаю что это хорошо для adobe?!
 

andrew.folio

Участник
Топикстартер
Сообщения
28
Реакции
40
Пробовал устанавливать разные дефолтные стили — результат тот же. Пробовал на чужом компьютере — все-равно вариант из Scripting Guide не работает. Как это ни парадоксально звучит, создается "графический TextBox".

Когда делаем TextBox вручную, то, мы его создаем, на базе какого-либо объекта и, действительно, можем получить как "графический TextBox" так и текстовый. А вот как этим управлять в скрипте пока не разобрался.
 
Статус
Закрыто для дальнейших ответов.