Можно ли скриптом сделать слой невидимым ...

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

ikatod

Участник
Топикстартер
Сообщения
14
Реакции
0
Здравствуйте, помогите пожалуйста решить проблему.

Есть файл *.ai допустим скрипт:
1. Находит текстовые слои (это понятно, много об этом написано)
2. Делает слой с текстом невидимым (можно ли реализовать такое? может подскажете пример или ссылочки?)
3. Экспортирует файл в растр.
4. Делает слой с текстом видимым.
5. Экспандит текст
...

Подскажите пожалуйста, можно ли реализовать все эти пункты с помощью скриптов. Буду премного благодарен за развернутые ответы и ссылки. Огромное спасибо.
 
Все можно делать скриптом, причем даже готовые есть.
 
  • Спасибо
Реакции: ikatod
А обязательно нужен скрипт? Я бы все это в Action загнала. Только что опробовала, вроде все получается нормально.
 
Все можно делать скриптом, причем даже готовые есть.
Извините за вопрос, который может показаться глупым. Я делаю первые шаги. Так будет выглядеть кусок скрипта для поиска слоя с текстом :
Код:
doc=app.actieveDocument
for ( i = 0; i < doc.textFrames.lenght; i++) {
    text=doc.textFrames[i].textRange;
}

А как прописать команду, что бы скрыть этот слой ?
Просмотрел коллекцию скриптов (более 120) не нашел ни одного скрипта, который скрывает слои =(
 
Можно загнать поиск всех текстовых объектов и потом спрятать их.
 
Select > Object > Text Objects
(Выделение > По типу объектов > Текстовые объекты)
 
  • Спасибо
Реакции: ikatod
посмотрите, что-то вроде такого скрипта надо?
 

Вложения

Последнее редактирование:
  • Спасибо
Реакции: ikatod
С самого начала, я, видимо, не правильно поставил вопрос.
Код:
var doc = activeDocument;
var lays = doc.layers;

/*********************
**  THE SCRIPT
*********************/
// скрыть слои содержащие текст
for (var i = 0; i < lays.length; i++) {
  if (isTextOnLayer(lays[i])) {
    lays[i].visible = false;
  }
}

/*********************
**  THE LIBRARY
*********************/

function isTextOnLayer(layer) {
  try {
    return  layer.textFrames[0];
  } catch (e) {
    // alert('Error line: ' + e.line + '\n' + 'Error message: ' + e.message);
  }
  return false;
}

Этот кусок кода выключает не только текст, а весь слой. Может есть свойство, которое сделает невидимым именно текст? (см. скриншот) Без имени911.jpg Всем большое спасибо за помощь
 
есть еще св-во hidden у объекта pageItem
посмотрите в adobe illustrator scripting reference
 
Статус
Закрыто для дальнейших ответов.