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

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

levin_va

Участник
Сообщения
17
Реакции
0
Ответ: Если есть вопросы по скриптам

Постаил ID английской локализации. В нем прекрасно все работает. В русской на двух компах не идет и все! У кого нибудь в русском ID работает?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 243
Реакции
10 852
Ответ: Если есть вопросы по скриптам

Может быть, это поможет обойти "языковую" проблему?
А толку? Я так понимаю, сам объект подменю уже какой-то сбойный, независимо от того, каким образом получен. Возможно, сбойный именно из-за кириллицы. А у вас на локализованном индизайне какое значение toSource?
 

levin_va

Участник
Сообщения
17
Реакции
0
Ответ: Если есть вопросы по скриптам

toSource вернул следующую строку - resolve("/menu[@name\"Контекстное меню \"Макет\"\"]")
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 243
Реакции
10 852
Ответ: Если есть вопросы по скриптам

Да я понял, мне интересно, что у других с локализованным ID возвращает, на котором скрипты работают.
 

zestum1

Участник
Сообщения
12
Реакции
0
Ответ: Если есть вопросы по скриптам

Выручайте братцы! Как отсортировать массив из русских имен? с цифрами и латиницей порядок, а с кириллицей нет...
 

zestum1

Участник
Сообщения
12
Реакции
0
Ответ: Если есть вопросы по скриптам

Вопрос снимается, была ошибка в последовательности действий...

Есть двухмерный массив, в первый столбец рубрика, второй фирма, была задача упорядочить по рубрике, а затем по алфавиту... Работает данная конструкция, единственно нужно внимательно следить за каждым знаком в названии фирмы - пробел в начале строки испортит всю сортировку. Поэтому нужно было нормализовать значения еще до сортировки.

Код:
Ars.sort(mySort);

function mySort (i, ii) 
{   
    //сортируем сначала по рубрике затем по названию по алфавиту
   if(i[0] == ii[0])
   {
            var A=i[1].toUpperCase();
            var B=ii[1].toUpperCase();
            return (A>B)-(B>A);
    }
    return i[0] - ii[0];
}
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Если есть вопросы по скриптам

Код:
#targetengine "doSomething"
var w = new Window("palette");
var but = w.add("button",undefined,"p");
[B]but.graphics.font = "Arial:9";[/B]
w.show();
Работает.

Код:
#targetengine "doSomething"
var w = new Window("palette");
var but = w.add("button",undefined,"p");
[B]but.graphics.font = "Webdings:9";[/B]
w.show();
Выдаёт:
webdings_error.jpg

Оба шрифта OTF, оба в папке c:/windows/fonts. Также ошибку выдаёт Wingdings, а тот же Tahoma срабатывает. Их вообще реально прикрутить, эти "рисуночные" шрифты?
 

boriskasmoscow

15 лет на форуме
Сообщения
343
Реакции
410
Ответ: Если есть вопросы по скриптам

Гляньте здесь. Как-то ухитрились.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 243
Реакции
10 852
Ответ: Если есть вопросы по скриптам

Гляньте здесь. Как-то ухитрились.

Это несколько не то. Там просто из обычного шрифта берутся несколько нестандартных символов с кодами 0xf04a-0xf04c. Я так понял нужен символ машинки с мигалкой? - в обычном шрифте такого юникодного символа нет.
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Если есть вопросы по скриптам

Да, действительно, ухитрились. А у меня такая ситуация получилась.
Сделал по их примеру так:
Код:
#targetengine "doSomething"
var myFont = app.activeDocument.selection[0].appliedFont;
var myFS = app.activeDocument.selection[0].fontStyle;
//alert(myFS);
var w = new Window("palette");
var but = w.add("button",undefined,"p");
var setfont = ScriptUI.newFont(myFont.fontFamily, myFS, 14);
but.graphics.font = setfont;
w.show();
Первые две строки считывают параметры шрифта (шрифт и начертание) из выделенного символа, которому я назначал разные шрифты. В результате пришел к версии, что строка "var setfont = ScriptUI..." нормально получает данные, если у шрифта доступно несколько начертаний (Regular, Bold и т.д.). Если у него доступен только Regular (или какой другой, NORMAL к примеру), т.е. одно начертание, то теперь выдается ошибка:
fontstyle_err.jpg
Ой, на скрине я руками в эту строку вбил название шрифта, но если там "myFont.fontFamily" (как у меня в коде) — тот же результат.
Как они это побороли, загадка...
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 243
Реакции
10 852
Ответ: Если есть вопросы по скриптам

Да никак не побороли, там таким же способом через control.children.graphics.font = font;
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Если есть вопросы по скриптам

Таким же, да. У них там вообще алгоритм какой: юзер в окне скрипта из списка выбирает символьный стиль, из которого считывается шрифт и начертание, и этим шрифтом прорисовываются символы на кнопках. И у меня оно работает и с таймсом, и с прагматикой, только не с тем что мне надо, только ошибка не выдается, эти ж окна ScriptUI-шные их просто пропускают и работают дальше.
Одним словом, не работает )).
Я так понял нужен символ машинки с мигалкой?
Да не обязательно. Сам шрифт прикрутить хочу.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 243
Реакции
10 852
Ответ: Если есть вопросы по скриптам

Да не обязательно. Сам шрифт прикрутить хочу.
Я предполагаю, тут ограничение программное, ну например, им, допустим, обязательно нужен болд, чтобы кнопку как-то выделить или серой сделать, мало ли? И это уже в реализацию самой кнопки заложено?
Зачем вам именно этот шрифт прикручивать, сделайте или картинкой или в шрифтовом редакторе искусственно прикрутите к вебдингсу нужное начертание и используйте для кнопок именно его.
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Если есть вопросы по скриптам

или картинкой или в шрифтовом редакторе
Сделаю конечно, *.png в iconButton засуну и всех делов. А со шрифтом из принципа завелся, разобраться охота.

Не по теме:
У них, кстати, на скринах на кнопках webdings отображается ((.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 243
Реакции
10 852
Ответ: Если есть вопросы по скриптам

У них, кстати, на скринах на кнопках webdings отображается
Это сверху, я так понимаю, просто пример из какой-то другой программы повторить хотели - ну и сделали подобный скрипт. А вообще, сложно этих японцев понять, восток - дело тонкое. ;) А что мешает свой шрифт все таки допилить? По-моему так проще, заодно проверите в начертаниях ли дело. Или java не позволяет самому ttf устанавливать? - тогда через вызов API, там, вроде, совсем просто.
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Если есть вопросы по скриптам

А что мешает свой шрифт все таки допилить?
Не вижу особой надобности этим заниматься, тем более что
в начертаниях ли дело
оказывается нет. Проверил еще несколько шрифтов — часть подключается, часть — нет. Причем независимо от количества начертаний (как я ранее предполагал), и независимо от того, OTF ли это, TTF или T1, т.е. вообще закономерности никакой не выявил. Наверное надо лезть глубже, рассматривать шрифты какими-то спецпрограммами, чтобы её (закономерность) выявить, но смысла, честно говоря, уже не вижу, т.к., по-моему, вряд ли эта проблема когда-нибудь станет для работы настолько критичной, чтобы и дальше тратить на неё время.
 

Alexey_Nik

12 лет на форуме
Сообщения
37
Реакции
41
Ответ: Если есть вопросы по скриптам

Добрый день.
Есть Rectangle в него вставлен PDF. Как узнать размер bleed у вставленного pdf?
 

doomscar

Участник
Сообщения
4
Реакции
0
Ответ: Если есть вопросы по скриптам

Доброй ночи!
Пересмотрел кучу тем по поиску и замены текста, не нашел как осуществить его на конкретной странице
в ScriptingGuide_JS есть пример поиска по всему документу.
Код:
var myDocument = app.activeDocument;
//Clear the find/change text preferences.
app.findTextPreferences = NothingEnum.nothing;
app.changeTextPreferences = NothingEnum.nothing;
//Search the document for the string "Text".
app.findTextPreferences.findWhat = "text";
//Set the find options.
app.findChangeTextOptions.caseSensitive = false;
app.findChangeTextOptions.includeFootnotes = false;
app.findChangeTextOptions.includeHiddenLayers = false;
app.findChangeTextOptions.includeLockedLayersForFind = false;
app.findChangeTextOptions.includeLockedStoriesForFind = false;
app.findChangeTextOptions.includeMasterPages = false;
app.findChangeTextOptions.wholeWord = false;
var myFoundItems = myDocument.findText();
alert("Found " + myFoundItems.length + " instances of the search string.");
app.findTextPreferences = NothingEnum.nothing;
app.changeTextPreferences = NothingEnum.nothing;
С поиском в выделенном фрейме тоже понятно. Знаю как получить номер страницы, а вот как искать на ней текст, что-то не могу разобраться.
Будьте добры подскажите).
Если подобная тема все же была киньте ссылку.
Использую Indesign CS5.5.
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
Ответ: Если есть вопросы по скриптам

Текст надо искать в текстовых фреймах, которые находятся на нужной странице:
Код:
myDocument.pages[0].textFrames[0].findText();
или
Код:
app.activeWindow.activePage.textFrames[0].findText();
Если преполагается, что фреймы могут быть сгруппированы с другими объектами, то путь к ним: страница —> группа —> фрейм.
И т.д.
 

doomscar

Участник
Сообщения
4
Реакции
0
Ответ: Если есть вопросы по скриптам

Не ожидал так быстро получить ответ). Догадывался что придется именно к фреймам обращаться, но думал что есть более простой подход).
Спасибо за помощь.:)
 
Статус
Закрыто для дальнейших ответов.