Как вообще скрипт прицепить к InDesign?

  • Автор темы Автор темы Sve
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Ответ: Как вообще скрипт прицепить к InDesign?

myParagraph.tables[номер].cells[номер].paragraphs[номер]
 
Ответ: Как вообще скрипт прицепить к InDesign?

Олег, спасибо. А не подскажешь ли еще для комплекта как можно програмно вставить в текс картинку. Скажем в ячейку таблицы.
 
Ответ: Как вообще скрипт прицепить к InDesign?

Уже помещенную в документ картинку скопировать, выделить в тексте нужный insertion point (это специальный объект между символами), вствить картинку.
 
Ответ: Как вообще скрипт прицепить к InDesign?

не, не понял. Мне нужно как раз не вставлять руками картинку, а сделать все програмно. Ну например передать путь к картинке. А потом в скрипте уже вставить по пути
 
Ответ: Как вообще скрипт прицепить к InDesign?

PHP:
myFile = new File (filepath);
myText.insertionPoints[номер].place(myFile, [дополнительные опции]);
 
Ответ: Как вообще скрипт прицепить к InDesign?

ага, спасибо. Еще вопрос: У тебя в скриптах проверка текстовый фрейм или нет определяется:
if ((selection[0].constructor.name!="TextFrame") && (selection[0].constructor.name!="Text") && (selection[0].constructor.name!="InsertionPoint")) {
}
Это работает, если есть выделение. Если же мне нужно обработать все фреймы?
я пробовал так:
var globalStory = myDoc.stories;
for (var storyCounter=0;storyCounter<globalStory.length;storyCounter++) {
var myStory=myDoc.story[storyCounter];
}
ну и оно ессно выдало ошибку, что, мол, undefined не есть объект.
Как определить родителя фрейма? В доке нет вообще упоминания ни о selection, ни о frame. Есть TextFrame, но я знаю как до него добраться, только через paragraph... Как можно, в общем, перебрать все текстовые Story?
 
Ответ: Как вообще скрипт прицепить к InDesign?

Если нужно перебрать все story в документе, то плясать следует от myDocument.stories, только примерно в таком виде:
Код:
with (app) {
 var myDoc = activeDocument;
 for (storyCounter = 0; storyCounter < myDoc.stories.length; storyCounter++) {
 var myStory = myDoc.stor[COLOR=Red]ies[/COLOR][storyCounter];
 }
}

Только, судя по всему, нужны тебе не story, а textFrames. Разницы в доступе к ним и к stories - никакой.

Родитель определяется через .parent. Тип ID-объекта определяется через .constructor.name.
 
Ответ: Как вообще скрипт прицепить к InDesign?

Ок, пасиб. А как вставить параграф перед указанным параграфом? place заменяет его, а что-то типа insert нет ни в paragraph(s), ни в story(ises).
И дайте ссылку плиз на мануал по JS, а то я никак не могу получить список файлов из директории
 
Ответ: Как вообще скрипт прицепить к InDesign?

Добавить параграф можно только изменив его contents на contents + "^p" + "чего там надо".
О получении списка файлов из директории - читай в мануале по скриптингу на стр. 498.
 
Ответ: Как вообще скрипт прицепить к InDesign?

Код:
myFile = new File ("D:\\Sve\\Project\\OurCity\\nDesign\\Онлайн 8.tif");
myParagraphs[2].contents="^p"+myParagraphs[2].contents;
myParagraphs[2].place(myFile);
myParagraphs[2].applyStyle("Adver 8");
выдает ошибку "Invalid parameter.", хотя стиль такой есть. В мануале сказано, что может использоваться название стиля. В чем ошибка-то?
Олег, есть ICQ или мирка, что-нибудь чтобы в онлайн говорить?
 
Ответ: Как вообще скрипт прицепить к InDesign?

Кстати, параграф, указанным тобой способом не добавляется, в story появляется ^p, который, правда и заменяется на картинку, тут все верно, но вот считается это как 1 параграф, то есть нельзя зделать отдельный стиль для картинки и отдельный стиль для текста даже ручками в Story Editor, кроме как нажать ENTER после картинки
 
Ответ: Как вообще скрипт прицепить к InDesign?

Как добавить параграф разобрался, добавлять следует символ \r
Но вот стили до сих пор не применяются. Подскажите, где я протупил?
 
Ответ: Как вообще скрипт прицепить к InDesign?

Код:
myParagraphs[0].contents = "\u000D" + myParagraphs[0].contents;
myStyle = activeDocument.paragraphStyles.item('Text 3');
myParagraphs[0].applyStyle(myStyle);
 
Ответ: Как вообще скрипт прицепить к InDesign?

А вот еще вопрос, касаемый, наверное, не именно InDesign, а JS вообще:
Код:
function recurseFolder(folder, name) {
	alert(folder);
	var myFolder=new Folder(folder);
	if (myFolder==null)
		return name;
	var files=myFolder.getFiles();
	for (var i=0;i<files.length;i++) {
		var tmpFolder=new Folder(files[i]);
		name+=files[i].name;
		if (tmpFolder!=null) {
			name+=" - isFolder\r\n";
			recurseFolder(files[i], name);
			delete(tmpFolder);
		}
		else
			name+="\r\n";
	}
	return name;
}

alert(recurseFolder("D:\\Sve\\Project\\OurCity\\nDesign\\",""));

Выдает мне первым же алертом, что переменная "folder" undefined и возвращает стринг "Adobe IDesign".
 
Ответ: Как вообще скрипт прицепить к InDesign?

Вынеси функцию из with (app){}.
 
Ответ: Как вообще скрипт прицепить к InDesign?

А есть что-то вроде аналога IsFolder (в РНР). Ну чтобы определить, что это директория, а не файл? А то что-то у меня все файлы получаются директориями, причем в реальные директории не заходит.
 
Ответ: Как вообще скрипт прицепить к InDesign?

Лечи код. Например, в функции ты пытаешься удалить директорию, которую не создал. Причем не создал не только потому, что не применил метод .create, но и потому, что передал в качестве параметра объект-файл. Это не есть правильно. Надо передавать путь к файлу + имя файла.
 
Ответ: Как вообще скрипт прицепить к InDesign?

Вообще-то я не удалял директорию, я пытался деструкировать класс, который же и породил.

А вот еще вопрос: Как увеличить размер последнего связанного фрейма, чтобы текст уместился полностью (он когда не умещается - горит "+" в нижнем правом углу фрейма), дабы можно было нормально обработать трекинг, рамочки выставить и прочее, потому как оно что-то не хотит работать с невидимым текстом. Ну и было бы вообще замечательно, если бы он еще его после ужатия текста (tracking=-30), подтянул фрейм обратно...
 
Ответ: Как вообще скрипт прицепить к InDesign?

Или такое в принципе невозможно?
 
Ответ: Как вообще скрипт прицепить к InDesign?

У фрейма есть изменяемое свойство .geometricBounds, - массив из четырех чисел, определяющий положение фрейма в документе.
 
Статус
Закрыто для дальнейших ответов.