«Отэмбеддить» все внедренные линки
Случалось ли вам получать файл, в котором все изображения были внедрены, а не прилинкованы? Такое случается не каждый день, но, как известно, It happens! К счастью в InDesign есть возможность извлечь все внедренные линки в отдельную папку. Правда с каждым линком придется возиться отдельно и если их много, то это довольно трудоемкая работа – выбрать линк, потом в контекстном меню или выпадающем меню палитры Links выбрать Unembed Link. Куда как проще сделать это с помощью скрипта.
Класс Link имеет метод unembed(), позволяющий извлечь линк из документа и сохранить отдельным файлом или перелинковать с существующим файлом. То есть, если файла в папке назначения не существует, то InDesign создаст новый (извлекая его из документа). Причем файл хранится в документе целиком – если на одном компьютере внедрить psd со слоями, а на другой машине извлечь, то вы получите точно такой же файл! Все это замечательно, но вполне понятно, что это не лучший метод хранения файлов, поскольку размер файла верстки очень быстро растет, что в свою очередь замедляет работу с ним и создает вероятность ошибок.
Скрипт работает так:
// ищем первый линк в документе var myLink = app.activeDocument.links[0]; // проверить статус внедрения $.writeln(myLink.status == LinkStatus.LINK_EMBEDDED); // извлечь в папку по умолчанию myLink.unembed(); // извлечь в отдельную папку // если файл существует, то он будет переписан извлеченным файлом var myDest = Folder("/c/myDestination"); myLink.unembed(myDest); |
А вот скрипт, который перед тем как извлечь линки, спросит куда именно это сделать. И если вдруг окажется, что в папке назначения файл уже существует, то скрипт просто создаст связь с ним, вместо того, чтобы переписать файл поверх существующего (что происходит по умолчанию в методе unembed()). Просто и легко!
Автор скрипта — Marijan Tompa
Взято отюда
Было бы совсем замечательно, если бы на место внедренных файлов вставлялся линк на извлеченные с сохранением всех пропорций, эффектов и т.д.
Может скрипт это делает?
Да, именно это и происходит.
При извлечении файлов в папку, в документе на них создаются ссылки.
По-моему скрипт содержит ошибку, из-за которой при выставленной галке «развнедрять» выпадает ошибка. Наблюдается в CS3. Чтобы скрипт работал правильно надо заменить 21-ю строку на такой код:
myLink.unembed(myFolder);