Скрипт для получения кернинга (CS2, JS)

  • Автор темы Автор темы aar
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

aar

Участник
Топикстартер
Сообщения
379
Реакции
0
Требуется помощь в написании скрипта для InDesign CS2 (JavaScript)

ТЗ.
Документ, состоящий из нескольких страниц с расположенными на них связанными текстовыми фреймами. Каждый фрейм содержит несколько колонок с параграфами текста. Необходимо последовательно обходить эти фреймы (в том порядке, в каком они связаны) и для каждого параграфа извлекать значение кернинга для пары символов, которая состоит из текущего символа и следующего за ним. Извлеченные значения сохранять в текстовый файл в следующем формате (строка):

<Символ_слева> <Символ_справа> <Значение_кернинга>

Благодарю.
 
Ответ: Скрипт для получения кернинга (CS2, JS)

На продтп уже кто-то писал подобный скрипт + скипт для фонтлаба — спроси там.
 
Ответ: Скрипт для получения кернинга (CS2, JS)

Если вручную изменяю кернинг для символа (Alt+стрелка влево/вправо или в палитре), то этот код:

alert(app.selection[0].parentStory.paragraphs[2].characters[3].kerningValue);

выводит получившиеся значение.


А как узнать значение кернинга у символа, если он находится в параграфе, к которому применен Metrics или Optical кернинг? Пишет ошибку:

http://img360.imageshack.us/img360/1060/acs2er2aj.gif

Не могу понять.
 
Ответ: Скрипт для получения кернинга (CS2, JS)

Решилось :)

alert(app.selection[0].parentStory.paragraphs[2].insertionPoints[3].kerningValue);
 
Ответ: Скрипт для получения кернинга (CS2, JS)

Я писал скрипт (как раз для prodtp), составляющий таблицу значений кернинга попарно между всеми знаками выделенного текста.
 
Ответ: Скрипт для получения кернинга (CS2, JS)

Oleg Butrin

Я знаю, именно ваш пост про insertionPoint и навёл меня на верный лад.

Вы можете поделиться уже написанным?
 
Ответ: Скрипт для получения кернинга (CS2, JS)

Да не вопрос. Куда слать?
 
Ответ: Скрипт для получения кернинга (CS2, JS)

А есть ли возможность использовать в скрипте хэши, как на перле?

То есть это такая структура данных, вроде массива, только с доступом не по индексу, а по ключу. Например:

%hash_color = ("red" => "FF0000", "green" => "00FF00", "blue" => "0000FF");

при выводе командой

print $hash_color{"red"};

даст результат

FF0000
 
Ответ: Скрипт для получения кернинга (CS2, JS)

Есть. Это тип Object.
Конкретный пример выглядит так:

PHP:
var myColors = new Object ({red: "FF0000", green: "00FF00", blue: "0000FF"});
alert (myColors.red);
 
Ответ: Скрипт для получения кернинга (CS2, JS)

А можно ссылку на PDF с хорошей спецификацией JavaScript?
---
Разобрался.
 
Ответ: Скрипт для получения кернинга (CS2, JS)

Прогресс бар, как я понял, сделать на JS не удастся. А каким-нибудь ещё образом можно сообщать пользователю о ходе выполнения процесса?
 
Ответ: Скрипт для получения кернинга (CS2, JS)

А зачем ему сообщать о промежуточных результатах? По окончании сообщай сколько влезет...
 
Ответ: Скрипт для получения кернинга (CS2, JS)

Он долго работает при больших объёмах текста, и если, скажем переключиться на другую задачу, а потом обратно в InDesign, то экран прорисовывается не до конца, и ощущение, что зависание произошло.
 
Ответ: Скрипт для получения кернинга (CS2, JS)

Ну вот как раз прекрасная иллюстрация работы скрипта.
 
Ответ: Скрипт для получения кернинга (CS2, JS)

Олег, я всё-таки хотел узнать, вообще принципиальная возможность имеется?

Пока что я вижу, что этого нет, потому что после того, как диалог выведен, в нем менять ничего не получается (если, скажем, метку задействовать). Как сделать перерисовку диалога на ходу — тоже неясно, вроде бы нельзя, только заново создать. Но чтобы заново создать — это надо на кнопку нажать в диалоге. Замкнутый круг.
 
Статус
Закрыто для дальнейших ответов.