[ID CS4-CS6] Скрипт для замены текста картинкой

Darvinnn

Топикстартер
12 лет на форуме
Сообщения
46
Реакции
0
Добрый день! Помогите пожалуйста разобраться с написанием скрипта для замены текста на картинку.
Задача - упростить верстку телепрограммы. Есть текст, где названия каналов написаны текстом (Первый, Второй, НТВ и т.д.). Есть подготовленные EPS-картинки с логотипами каналов. Так вот, нужно что бы все названия каналов заменялись логотипами.
Пока дальше схемы не продвинулся:

Вставить логотип первого канала
Вырезать объект в буфер обмена
app.findPreferences.Findtext = "Первый";
app.changePreferences.changeTo = Буфер обмена;
app.documents[0].changeText();
Повторить все то же самое для остальных каналов.

Помогите пожалуйста все это написать работающим скриптом. Спасибо!
 

LeonidB

Их бин
10 лет на форуме
Сообщения
2 468
Реакции
1 528
Посмотрите это.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835

Darvinnn

Топикстартер
12 лет на форуме
Сообщения
46
Реакции
0
Мало что понятно...
А можно в конструкции заменить на указать содержимое буфера обмена. Как то так:
app.changeGrepPreferences.changeTo = "/C";
 

Darvinnn

Топикстартер
12 лет на форуме
Сообщения
46
Реакции
0
Наверное, все таки app.ChangeTextPreference ? %8
Где вы эту дичь откопали?
В книге Борисова 2008 года )) Понял уже, что многое поменялось )
Сейчас выглядит так:

var myObject = myDoc.pages[0].place(new File(ИМЯ ФАЙЛА)),[0,0],undefined, false); // непонятно как написать это
Скопировать объект в буфер обмена (вернее, вырезать)
app.findGrepPreferences = app.changeGrepPreferences = null;
app.findGrepPreferences.findWhat = "Первый";
app.changeGrepPreferences.changeTo = "/C"; // земенить на содержимое буфера
app.changeGrep();
 

Eugenyus

12 лет на форуме
Сообщения
1 960
Реакции
3 589
"place" можно делать сразу вместо нужного слова:
JavaScript:
var curText = app.activeDocument.stories[0].words[0];
curText.place(File("/d/work/.../logologo.eps"));
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835

Darvinnn

Топикстартер
12 лет на форуме
Сообщения
46
Реакции
0
"place" можно делать сразу вместо нужного слова:
JavaScript:
var curText = app.activeDocument.stories[0].words[0];
curText.place(File("/d/work/.../logologo.eps"));
Мало понятно что с этим делать )))
Как это вставить вместо слова Первый
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Мало понятно что с этим делать )))
Я погляжу, вы хотите или чтобы вам готовый скрипт написали или в рамках этой темы обучили азам программирования с нуля? И то и другое весьма проблематично
Вы приведенные ссылки то критически читаете?
 

Darvinnn

Топикстартер
12 лет на форуме
Сообщения
46
Реакции
0
Я погляжу, вы хотите или чтобы вам готовый скрипт написали или в рамках этой темы обучили азам программирования с нуля? И то и другое весьма проблематично
Вы приведенные ссылки то критически читаете?
Вполне критически. Я прошу помочь написать скрипт. Готовый не нужно, нужно просто помочь. И да, программированию хочу научиться
 

Oleg Butrin

20 лет на форуме
Сообщения
1 989
Реакции
1 213
Скрипт простой.
1. Найти текст по списку строк.
2. Заменить текст на картинку из файла.
 
  • Спасибо
Реакции: Darvinnn

Oleg Butrin

20 лет на форуме
Сообщения
1 989
Реакции
1 213
А как это сделать средствами javascript?
А вы насколько знакомы со средствами javascript в принципе?
Потребуется объявит массив строк, а лучше -- объектов, где одним полем является строка для поиска, а другим -- путь к файлу.
Затем в цикле этот массив надо будет обработать.
 
  • Спасибо
Реакции: Darvinnn

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835

Darvinnn

Топикстартер
12 лет на форуме
Сообщения
46
Реакции
0
Еще раз повторяю - обратите внимание на это:
Я его посмотрел. Мало понятно, если честно ))
Мне бы конструкцию реализовать:

Вставить логотип первого канала
Вырезать объект в буфер обмена
app.findPreferences.Findtext = "Первый";
app.changePreferences.changeTo = Буфер обмена;
app.documents[0].changeText();
Повторить все то же самое для остальных каналов.

Или
app.findGrepPreferences.findWhat = "Первый";
app.changeGrepPreferences.changeTo = ФАЙЛ
app.documents[0].changeText();
Повторить все то же самое для остальных каналов.
 

Darvinnn

Топикстартер
12 лет на форуме
Сообщения
46
Реакции
0
А вы насколько знакомы со средствами javascript в принципе?
Потребуется объявит массив строк, а лучше -- объектов, где одним полем является строка для поиска, а другим -- путь к файлу.
Затем в цикле этот массив надо будет обработать.
Весьма поверхностно. На VB приходилось писать макросы, на яваскрипте не было опыта. Объявить массив Искомый_текст - путь к файлу не проблема. А вот что дальше с этим делать не понятно. Вернее, ясно, что нужно просмотреть весь текст, при нахождении любого элемента первого столбца массива заменить его на файл, расположенный по пути, указанному во втором столбце массива. А вот как это реализовать, не понятно (
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Мне бы конструкцию реализовать:
Давайте еще раз определимся - вы хотите полностью с нуля обучиться программированию на javascript в рамках этой темы? Судя по вашим постам, обучать придется самым азам.
Или все таки найти готовый костыль, который можно применить на практике?
Если второе, то понимать логику процитированного скрипта вам не обязательно - меняйте первый и какие там еще каналы на имена файлов и применяйте скрипт
 

Darvinnn

Топикстартер
12 лет на форуме
Сообщения
46
Реакции
0
Давайте еще раз определимся - вы хотите полностью с нуля обучиться программированию на javascript в рамках этой темы? Судя по вашим постам, обучать придется самым азам.
Или все таки найти готовый костыль, который можно применить на практике?
Если второе, то понимать логику процитированного скрипта вам не обязательно - меняйте первый и какие там еще каналы на имена файлов и применяйте скрипт
У меня стоит вполне конкретная задача - сделать скрипт. Обучаться задачи не стоит. Если есть костыль, который можно адаптировать под задачу, было бы прекрасно. Приведенный ранее скрипт решает немного другую задачу, и там очень много переменных запрашивается у пользователя. Если можете, приведите подходящий костыль или напишите скрипт, который тупо меняет слово на картинку
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Вы начинаете меня пугать. '8()'
У меня стоит вполне конкретная задача - сделать скрипт. Обучаться задачи не стоит.
Давайте вместе посмотрим инструкцию
РАБОТА СО СКРИПТОМ

Подготовьте текст, содержащий кроме всего прочего имена файлов, заключенные в тэги (или не заключенные в теги) и запустите скрипт.

Выберите тип представления имен файлов (Короткие имена означают, что в подготовленном заранее тексте файлы представлены в виде имя.расширение, например test.tif. Длинные имена означают, что файлы представлены в виде путь/имя.расширение). Если в подготовленном тексте имены файлов представлены в кодированном виде (UTF-8), то включите соответствующую опцию (если вы не знаете, что такое UTF-8 - ничего страшного, просто не обращайте внимание на эту опцию). Измените тэги в соответствии с подготовленным текстом.

Выберите настройки для изменения размеров помещенных картинок. Если вы точно знаете размер помещаемых картинок и можете указать процентное соотношение нужного размера к реальному. То есть, если картинка нужна в половину меньшего размера, чем есть, устанивите значение, равное 50%. Картинки можно и увеличить - до 200%. Если вы хотите, чтобы картинка не выходила за рамки некоторого точно определенного размера, то воспользуйтесь настройками "максимальная длина" и "максимальная высота". При включенных опциях картинка будет пропорционально уменьшена так, чтобы она не превышала допустимые размеры.

После нажатия кнопки Ок выберите папку, в которой находятся файлы. За один прогон скрипта можно использовать файлыа только одной папки.

После нажатия кнопки Ок скрипт найдет имена файлов в тексте и заменит их на сами файлы.
Что именно тут непонятно или неприемлемо для вас? IMHO проще некуда - меняйте нужные слова на имена файлов а потом запускайте.
Это гораздо проще, чем учиться программированию или каким то непостижимым образом писать скрипт не умея программировать вообще и не желая учиться
 

Darvinnn

Топикстартер
12 лет на форуме
Сообщения
46
Реакции
0
Вы начинаете меня пугать. '8()'

Давайте вместе посмотрим инструкцию
Что именно тут непонятно или неприемлемо для вас? IMHO проще некуда - меняйте нужные слова на имена файлов а потом запускайте.
Это гораздо проще, чем учиться программированию или каким то непостижимым образом писать скрипт не умея программировать вообще и не желая учиться
Вы издеваетесь? Поменять названия каналов на имена файлов по времени выйдет чуть дольше, чем вручную через GREP-замену поменять все вхождения на заранее скопированные логотипы. Задача - иметь скрипт, который заменит названия на логотипы в одно нажатие.
"Не умея программировать" - это вы загнули, вполне умею, но на VB, С+ и Паскале.
"Не желая учиться " - это вы из чего сделали такой вывод?
 
Последнее редактирование: