Если есть вопросы по скриптам

  • Автор темы Автор темы Oleg Butrin
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Ответ: Если есть вопросы по скриптам

1. Так и посмотрите свойства TextWrapPreference. Там все просто: textWrapOffset, textWrapType.
2. Как такового для объектов такого метода нет, но разве сложно использовать метод конкретно для текста в объекте?
 
Ответ: Если есть вопросы по скриптам

1. Спасибо! До TextWrapPreference не долистал :)
2. Тут я, наверное, снова нечётко выразился. Я имел в виду, что имеется некий фрейм, вставленный в текст, и к нему применяется Object Style. Стиль применяется нормально, но локальное форматирование остается. Вопрос в том как это локальное форматирование ликвидировать (Alt+два щелчка по стилю или щёлкать «Clear Overrides» в меню Object Style для каждого из фреймов слишком долго). Может, есть возможность как-то это обойти.
 
Ответ: Если есть вопросы по скриптам

Спасибо. Буду пробовать.
 
Ответ: Если есть вопросы по скриптам

Здравствуйте, подскажите, можно ли как-то в одном скрипте делать ссылку на другой, т.е. идет выполнение скрипта1.js, а в нем есть ссылка на другой скрипт2.js - при выполнении условия этот скрипт выполняется, потом идет дальше продолжение скрипта1.js?
 
Ответ: Если есть вопросы по скриптам

Либо include, либо eval("Текст скрипта")
 
Ответ: Если есть вопросы по скриптам

По поводу Eval:
PHP:
//*==========================================================================

InDesign ExtendScript

NAME: InScript
VERSION: 1.0

AUTHOR: Michail Silin 
DATE  : 2.08.2005

DESCRIPTION: Run Scripts in {Script@ and @} in text frames.

SUPPORT: 
E-MAIL: glutton@mail.ru

============================================================================ */

startString="Script@"
EndString="@"

with (app) {

	if (documents.length < 1) {
		alert("No open documents");
		exit();
	}
	 myDoc = activeDocument;
	for (tf = 0; tf < myDoc.allPageItems.length; tf++) {
		var mylabel = myDoc.allPageItems[tf].label;
		var myRegExp = new RegExp(startString+"([^\u0000,"+EndString+"]+)"+EndString, "gim");
		arrHeads = mylabel.match(myRegExp);
		if (arrHeads!=null) {
			for (j = 0; j < arrHeads.length; j++) {
				var ScriptText = arrHeads[j].substr(startString.length,arrHeads[j].length-startString.length-EndString.length);
				ScriptText=ScriptText.replace("InS","activeDocument.allPageItems[tf].contents");
				ScriptText=ScriptText.replace('[“,”,«,»]','"');
				eval(ScriptText);
				if(myDoc.allPageItems[tf].constructor.name!="TextFrame")
				{
				}else{
				var MaTF=myDoc.textFrames.itemByID(myDoc.allPageItems[tf].id);
				var myPara = MaTF.lines[0];
				var StartIP = myPara.insertionPoints.item(0);
				var EndIP = myPara.insertionPoints.item(myPara.insertionPoints.length-2);
				MaTF.geometricBounds[3] = EndIP.horizontalOffset - StartIP.horizontalOffset+MaTF.geometricBounds[1];
				}
			}
			
		}	
	}

}

По поводу include (код взят из linkCollector.js):
PHP:
//Подключаем ini 	
	var myIniFile = new File (activeScript.path + "/linkCollector.ini");
	if (!myIniFile.exists) {
		alert ("Cant open ini file!");
		exit();
	} else {
		eval ("//@include \'linkCollector.ini\';");
	}
 
Ответ: Если есть вопросы по скриптам

Glutton, спасибо за подсказки...
Но я так и не понял одну вещь: где бы все-таки найти полную инфу о том, как писать скрипты, что для этого нужно знать? Есть у меня Adobe® InDesign® CS2 Official JavaScript Reference, но это какая-то абракадабра - как это все применять? Где бы узнать сам синтаксис этих скриптов, потому что как я понял, с вебовскими JavaScript это не имеет ничего общего?
 
Ответ: Если есть вопросы по скриптам

Здравствуйте.
Подскажите пожалуйста, что нужно изменить в FindChangeByList.jsx, идущем с CS3 чтоб он правильно понимал регистр символов?
 
Ответ: Если есть вопросы по скриптам

Два пути:
1. Изучать grep версии Adobe.
2. Написать свой скрипт. Но для этого тоже надо будет поизучать grep.
 
Ответ: Если есть вопросы по скриптам

vbatushev сказал(а):
Два пути:
1. Изучать grep версии Adobe.
2. Написать свой скрипт. Но для этого тоже надо будет поизучать grep.
Изучить GREP? Честно говоря, полагал что это можно исправить примерно как в TextCleanup.jsx. Там ведь не было поддержки GREP.
Есть конечно ещё вариант приобресть у вас Виталий ваш сезам.
Так бы и поступил, но с большими массивами текста пока не работаю. Отсюда и желание просто как-нить подправить имеющийся скрипт FindChangeByList.jsx либо тот же TextCleanup.jsx, но он под CS3 не работает... А в скриптописании я не силён... :-(
 
Ответ: Если есть вопросы по скриптам

Где бы узнать сам синтаксис этих скриптов, потому что как я понял, с вебовскими JavaScript это не имеет ничего общего?

как же не имеет? тот же язык. объектная модель другая, ибо не с броузером и веб документом работа, а с InDesign и его документами. как раз эта другая модель и описана в reference.
 
Ответ: Если есть вопросы по скриптам

Люди добрые подскажите откудова вы черпаете знания о скиптах CS3 ?
помираю от недостатка инфы
в CS2 был scripting guide.pdf на 350 метров
с подробнейшим описанием Document Object Model
а в CS3 ничего такого нету Ж-(
тока жиденький обзор новшеств с сайта Адобе...

В частности интересует поведение класса app.selection
он стал какимто кривым. Раньше selection[0] - был певый выделенный.
А щас - чёртишо.
 
Ответ: Если есть вопросы по скриптам

ExtendScript Toolkit 2 -> Help
 
Ответ: Если есть вопросы по скриптам

Раньше selection[0] - был певый выделенный.
А щас - чёртишо.
вот здесь я поднимал эту тему, но так ответ и не нашелся…
 
Ответ: Если есть вопросы по скриптам

А в скриптописании я не силён...
grep — это не скриптописание, это "всего лишь" регулярные выражения, которые, слава Аллаху, вразумившему Adobe, поддерживаются в диалоге поиска и замены.
 
Ответ: Если есть вопросы по скриптам

vbatushev сказал(а):
grep — это не скриптописание, это "всего лишь" регулярные выражения, которые, слава Аллаху, вразумившему Adobe, поддерживаются в диалоге поиска и замены.

Понятно, что GREP -- регулярные выражения. Вопрос в другом, ежели кто не понял. Нельзя ли сделать чувствительность к регистру в обход GREP? Например домисав что-то в сам скрипт, а не в лист замен.
 
Ответ: Если есть вопросы по скриптам

Я прямо удивляюсь за Вас. Зачем менять скрипт, если достаточно прописать необходимые вещи прямо в файле FindChangeList.txt???
И причем тут обход GREP, если можно использовать не только GREP?
Если ищите text, то сделайте строку подобно нижеследующей:
text {findWhat:"--"} {changeTo:"^_"} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false, caseSensitive:true} Find all dash-dash and replace with an em dash.

Доп. сведения о грепе в ID:
http://www.adobe.com/go/learn_id_grep
 
Ответ: Если есть вопросы по скриптам

vbatushev сказал(а):
Если ищите text, то сделайте строку подобно нижеследующей:
text {findWhat:"--"} {changeTo:"^_"} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false, caseSensitive:true} Find all dash-dash and replace with an em dash.

Я наверняка чего-то не знаю, но строка например
text {findWhat:" <0414> "} {changeTo:" <0414>^S"} {includeFootnotes:true, includeMasterPages:false, includeHiddenLayers:true, wholeWord:false}
изменит обычный пробел на нефиксированный неразрывный, но изменит и строчную букву на прописную. Смена юникодного обозначения на обычное кириличное начертание приведёт к тому же результату.
grep {findWhat:" Ш. "} {changeTo:" Ш.^S"} {includeFootnotes:true, includeMasterPages:false, includeHiddenLayers:true, wholeWord:false}
меняет символы точно так же. Отсюда и сделан вывод, что этот скрипт не понимает регистр.

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