[AI CC-CC2022] Копировать имя линка

  • Автор темы Автор темы Удалённый пользователь 10719
  • Дата начала Дата начала
У

Удалённый пользователь 10719

Гость
Топикстартер
Вроде задача простая, в индизайне решена, а в илле ну никак. Или я не вижу очевидного? Как скопировать имя линка, которое в панели линков? Например, файл внедрен, если его развнедрить, то имя будет по дефолту аи имидж псд. Ну что за...
 
Можт я неверно понял, но когда я хотел вытащить embedded (или которые забыли прикрутить) линки из AI/pdf и обратно дать им статус линков, то:
1) Открывал фотошопом AI
2) Закладка Images
1624024560104.png

3) И они вродь с норм именем открываются — надо только пересохранить.
 
Последнее редактирование:
Можт я неверно понял, но когда я хотел вытащить embedded (или которые забыли прикрутить) линки из AI/pdf и обратно дать им статус линков, то:
1) Открывал фотошопом AI
2) Закладка Images
Посмотреть вложение 144038
3) И они вродь с норм именем открываются — надо только пересохранить.
я немного о другом. есть в панели линков файлы. у этих файлов есть оригинальные имена. как их скопировать?
 
я немного о другом. есть в панели линков файлы. у этих файлов есть оригинальные имена. как их скопировать?
1) Ну вот когда их шопом открываете (именно через закладку images,это важно) он им раздает эти имена )
2) Можете еще попробовать тут поковырять:
1624025582976.png

3) Или в панели Layer он называет объект по имени файла вроде тоже.

Надписи в самой панели Links неактивная к большому сожалунию.
 
1) Ну вот когда их шопом открываете (именно через закладку images,это важно) он им раздает эти имена )
2) Можете еще попробовать тут поковырять:
Посмотреть вложение 144040
3) Или в панели Layer он называет объект по имени файла вроде тоже.

Надписи в самой панели Links неактивная к большому сожалунию.
ну да, вот третий способ сработал - панель линкс неактивна с именами, а лэйерс - позволяет копировать имя.
А фотошопом открывать нечего - линки красные, потеряны...
 
Скриптом еще можно
 
'yes'
Не... не надо... :)
2021-06-19_10-48-40.png
скопировать и убрать две строчки :)
Код:
if ( app.documents.length > 0 ) {
var fileReferences = new Array();
var sourceDoc = app.activeDocument;
var sourceName =sourceDoc.name;
for ( i = 0; i < sourceDoc.pageItems.length; i++ ) {
artItem = sourceDoc.pageItems[i];
switch ( artItem.typename ) {
case "PlacedItem":
fileReferences.push( artItem.file.fsName );
break;
case "RasterItem":
//if ( ! artItem.embedded ) {
fileReferences.push( artItem.file.fsName );
//}
break;
}
}
// Write the file references to a new document
var reportDoc = documents.add();
var areaTextPath = reportDoc.pathItems.rectangle( reportDoc.height,0,
reportDoc.width, reportDoc.height );
var fileNameText = reportDoc.textFrames.areaText( areaTextPath );
fileNameText.textRange.size = 24;
var paragraphCount = 3;
var text = "File references in \'" + sourceName + "\':\r\r";
for ( i = 0; i < fileReferences.length; i++ ) {
text += ( fileReferences[i] + "\r" );
paragraphCount++;
}
fileNameText.contents = text;
}
 
  • Спасибо
Реакции: _MBK_
Впрочем... Если линк потерян (файл отсутствует), выдаст ошибку. Заблокировать то можно, но как обойти таки чтобы получить имя файла?:)
 
Последнее редактирование:
сли линк потерян (файл отсутствует), выдаст ошибку. Заблокировать то можно, но как обойти таки чтобы получить имя файла?

у меня дежавю или это уже неоднократно всплывало. в xmp можно попробовать посмотреть
 
Имя-то? Есть конечно... :) Вот смотри... линкую картинку, внедряю, удаляю файл - скрипт выдает ошибку. Делаю пустой файл с таким же именем там же, скрипт выдает имя без ошибки. То есть Doc.pageItems[i].file берет сохраненный путь линка в файле, проверяет наличие и возвращает только если файл существует...
 
в xmp можно посмотреть
Это парсить его нужно вроде как :) Вопрос, есть ли способ получить имя без этого, ведь однозначно Doc.pageItems[i].file сначала берет его из файла
это уже неоднократно всплывало
Не, не дежавю :)
 
JavaScript:
#target illustrator
var doc = app.activeDocument;
var pxml = new XML(doc.XMPString).xpath('//stRef:filePath');
var heading = "File links in " + doc.name;
var pf = new Array();
if (pxml !== '') {
  for (var i=0; i < pxml.length(); i++) {
    pf[i] = pxml[i]
  };
};

alert_scroll(heading, pf);

function alert_scroll (title, input){
if (input instanceof Array)
    input = input.join ("\r");
var w = new Window ("dialog", title);
var list = w.add ("edittext", undefined, input, {multiline: true, scrolling: true});
list.maximumSize.height = w.maximumSize.height-10;
list.minimumSize.width = 300;
w.add ("button", undefined, "Close", {name: "ok"});
w.show();
};
Если линковали и не сохранили файл, новые линки естественно не покажет!
Если покажете на примере данной задачи как этим пользоваться, буду очень благодарен.
Ибо я CEC9C8D5D1 не понял, но очень интересно... :)
 
Последнее редактирование:
Ээ что именно показать? Как поля xmp читать? ExtendScript tools guide открываем, там целая глава.
 
Сделал чуть поудобнее :)
Сохранять файл перед запуском скрипта чтобы получить путь к линку уже не нужно.
Получает путь только к выделенным внедренным/прилинкованным файлам (можно быстро скопировать путь к конкретному линку).
Выложил в ресурсах: