[ID CS4-CS6] Данные в таблицах

sverdlik

Топикстартер
10 лет на форуме
Сообщения
45
Реакции
0
Добрый день всем.
Есть таблица с двумя столбцами. В первом текстовые данные, разделённые на строки концом абзаца. В этом столбце нужно первой строке каждой ячейки задать стиль (чтобы потом создать оглавление).
Во втором столбце путь к растровому файлу. Растры все отформатированы одинаково. Нужно поставить растр на место пути к файлу.
К сожалению, в скрипты не умею. Подскажите куда копать, пожалуйста.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
Добрый день всем.
Есть таблица с двумя столбцами. В первом текстовые данные, разделённые на строки концом абзаца. В этом столбце нужно первой строке каждой ячейки задать стиль (чтобы потом создать оглавление).
Во втором столбце путь к растровому файлу. Растры все отформатированы одинаково. Нужно поставить растр на место пути к файлу.
К сожалению, в скрипты не умею. Подскажите куда копать, пожалуйста.
Копать в сторону умения.
 

К.Т.

Участник
Сообщения
323
Реакции
337
Разные скрипты для размещение картинок на места имён файлов существуют в количестве, надо поискать в сети и выбрать под свои требования.
Вот, например, прямо здесь:
 

sverdlik

Топикстартер
10 лет на форуме
Сообщения
45
Реакции
0
Вот, например, прямо здесь:
Попробовал. Отказывается у меня этот скрипт работать. Прокручивает прогресс бар и ничего. Попробую на другом компе на более новой версии индиза.
задать стиль конечно, можно. Но вот с созданием оглавления из такого выделения... хм
Проверил. Работает. Ровно так же, как с текстовым блоком. Осталось понять, как первой строке (до знака абзаца) в каждой ячейке задать стиль. Автоматически. Чтобы не лазить по всей таблице ручками.
Если бы в индизе можно было записывать макросы, было бы, наверно, проще. но увы, в моей версии (CS6) этого нет. Посмотрю завтра версию CC. Может там есть такой инструмент.
 

_MBK_

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

Любимцев

15 лет на форуме
Сообщения
4 198
Реакции
2 055
как первой строке (до знака абзаца)
так первой строке, или всему абзацу, вы б уж определились...
Выделить все необходимые ячейки и назначить нужный стиль. Его же можно прописать в стиле этих самых ячеек.

Вы бы толком описали проблему...
 

sverdlik

Топикстартер
10 лет на форуме
Сообщения
45
Реакции
0
Вы бы толком описали проблему...
Есть ячейки таблицы. В каждой ячейке несколько строк, разделённых абзацем. Стиль надо задать только первой строке. Остальной текст должен остаться без изменений.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835
В каждой ячейке несколько строк, разделённых абзацем. Стиль надо задать только первой строке.
Не совсем пойму, первая строка абзацем от остальных отбита или нет? Если да, то, наверное, grep стиль поможет
 

Любимцев

15 лет на форуме
Сообщения
4 198
Реакции
2 055
не поможет, т.к. речь идет о целом абзаце, который ТС упорно называет строкой.
Да и кол-во этих абзацев "несколько", т.е. разное, как подсказывает Ванга )
 

sverdlik

Топикстартер
10 лет на форуме
Сообщения
45
Реакции
0
Да, не прав в терминологии. Я не спец в вёрстке и путаюсь. Именно так. Именно абзац и именно несколько их. Т.е., разное в разных ячейках. И надо стиль задать только первому в каждой ячейке.
 

Vadim_PDF

15 лет на форуме
Сообщения
1 648
Реакции
237
Вкратце -
JavaScript:
var paragStyle = 'a'; // имя стиля
var a = app.activeDocument.selection[0].tables[0];  //выбираем таблицу
for (i=0; i<a.columns[0].cells.length; i++){  //цикл по строкам
try{
    a.columns[0].cells[i].paragraphs[0].appliedParagraphStyle = app.activeDocument.paragraphStyles.itemByName(paragStyle); // применяем стиль к 1 абзацу
    var aimage = a.columns[1].cells[i].contents; // получаем имя путь и имя файла строго в формате согласно https://acrobatusers.com/tutorials/file-paths-acrobat-javascript/
     a.columns[1].cells[i].contents = ''; //чистим контент второго столбца
     a.columns[1].cells[i].cellType = 1701728329; //применяет тип ячейки  - графика
     $.sleep(1000);// если не дать постпать скрипту Indesign не успевает просчитать и вываливается в ошибку
     a.columns[1].cells[i].contents.place(File(aimage), false); // Вставляем картинку
     $.sleep(1000) // сон - здоровье
    } 
catch(e){
 //   alert(e) выводим или плюем на ошибки
    }
}
А вообще подгонять надо по месту - пути править если не в том формате, чистить их до нормального состояния. Размер ячейки сохранять. и.т.д
 

Vadim_PDF

15 лет на форуме
Сообщения
1 648
Реакции
237
Вкратце -
JavaScript:
var paragStyle = 'a'; // имя стиля
var a = app.activeDocument.selection[0].tables[0];  //выбираем таблицу
for (i=0; i<a.columns[0].cells.length; i++){  //цикл по строкам
try{
    a.columns[0].cells[i].paragraphs[0].appliedParagraphStyle = app.activeDocument.paragraphStyles.itemByName(paragStyle); // применяем стиль к 1 абзацу
    var aimage = a.columns[1].cells[i].contents; // получаем имя путь и имя файла строго в формате согласно https://acrobatusers.com/tutorials/file-paths-acrobat-javascript/
     a.columns[1].cells[i].contents = ''; //чистим контент второго столбца
     a.columns[1].cells[i].cellType = 1701728329; //применяет тип ячейки  - графика
     $.sleep(1000);// если не дать постпать скрипту Indesign не успевает просчитать и вываливается в ошибку
     a.columns[1].cells[i].contents.place(File(aimage), false); // Вставляем картинку
     $.sleep(1000) // сон - здоровье
    }
catch(e){
 //   alert(e) выводим или плюем на ошибки
    }
}
А вообще подгонять надо по месту - пути править если не в том формате, чистить их до нормального состояния. Размер ячейки сохранять. и.т.д
P.S. Что бы сделать нормальный скрипт в "прод" - надо потратить кучу времени (умножаем время на 10) на доводку - проверку входящих данный, учет вариантов - например у вас будет в таблице объедененная ячейка и скрипт упадет. Абзац в конце пути - и скрипт упадет. Пустая ячейка в первом столбце - скрипт упадет. Выделена не вся таблица а курсор стоит в ячейке - скрипт упадет.
 

lexter77

10 лет на форуме
Сообщения
781
Реакции
335
Есть ячейки таблицы. В каждой ячейке несколько строк, разделённых абзацем. Стиль надо задать только первой строке. Остальной текст должен остаться без изменений.
Через Nested Line Style применить Character Style не подойдет?
Screenshot 2021-08-30 122931.jpg
 

sverdlik

Топикстартер
10 лет на форуме
Сообщения
45
Реакции
0
1. Выделить таблицу.
2. GREP поиск-замена в выделенном:
поиск: \A[^\r]+\r
замена: нужный стиль
Вот именно это сразу и помогло. Спасибо огромное. Теперь буду разбираться, как это работает.