Render.ru

путь до файла в Photoshop

#1
как сделать так, чтобы где нить в углу страницы показывался путь до файла, и чтобы этот путь изменялся при перемещении файла; мб кто юзал это ? подскажите плиз
 

monter

Знаток
Рейтинг
35
#2
Наводишь мышкой на заголовок окна документа и через секунду появится путь до твоего файла.
 
#3
не, нада чтобы он стоял в углу страницы, типа надпись и чтобы она изменялась при перемещении файла
 
#7
Нет, скриптом можно запросто, но автоматически... только если задействовать script event manager.

То есть, у вас есть скрипт который вставляет в документ текстовый объект с текстом в виде полного пути данного файла. А чтобы после записи файла по другому пути текст менялся, нужно добавить выполнение этого скрипта в Event Manager'е на событие Save.
 
#8
Все работает. Вот простейший скрипт:

Код:
var strtRulerUnits = app.preferences.rulerUnits;
var strtTypeUnits = app.preferences.typeUnits;
app.preferences.rulerUnits = Units.CM;
app.preferences.typeUnits = TypeUnits.POINTS;

var docRef = app.activeDocument;
var s = "FullDocumentPath";
// suppress all dialogs
app.displayDialogs = DialogModes.NO;

var textColor = new SolidColor;
textColor.rgb.red = 255;
textColor.rgb.green = 255;
textColor.rgb.blue = 255;

try {
	var newTextLayer = docRef.layers[s];
}
catch (e if e = 1302) {
	var newTextLayer = docRef.artLayers.add();
	newTextLayer.kind = LayerKind.TEXT;
	newTextLayer.textItem.position = Array(0, docRef.height);
	newTextLayer.textItem.size = 10;
	newTextLayer.textItem.color = textColor;
	newTextLayer.name = s;
}

newTextLayer.textItem.contents = docRef.fullName.toString();

app.preferences.rulerUnits = strtRulerUnits;
app.preferences.typeUnits = strtTypeUnits;
docRef = null;
textColor = null;
newTextLayer = null;
 
#9
не могу найти event manager, не подскажешь где ?
такую же фигню нада в coreldraw сделать, не знаешь случаем как там это осуществить ?)
 
#10
Скопируйте код скрипта, создайте новый в пресетах (так легче будет искать), откройте его и вставьте код. Сохраните, закройте.

File > Scripts > Script Events Manager.

Выберите свой скрипт из списка или нажмите Browse. Назначьте ему событие Save Document. Нажмите Add. Готово.

Теперь *ВСЕ* документы которые вы будете сохранять где-нибудь, получат новый текстовой слой, строку 10 пт, белого цвета, слева внизу, с текстом пути данного документа.
 

monter

Знаток
Рейтинг
35
#11
alert Написал:
-------------------------------------------------------
> и чтобы этот путь
> изменялся при перемещении файла;

с PSD такое прокатит, а вот если я работаю в JPG, раз сохранил, два сохранил и получай кашу. Как выход нужно добавить полосочку в 10пт под текстом в размер открытого документа, чтоб эта полоска забивала предыдущую инфу.

ЗЫ
Script Events Manager появился только в CS2, в ранних версиях ловить нефиг, только в ручную скрипт запускать.
 
#13
>такую же фигню нада в coreldraw сделать, не знаешь случаем как там это осуществить ?


File>Print>Prepress>Print file information, Position within page

 
#14
Я вообще не понял, в JPEG же нельзя сохранить файл со слоями, подразумевалось что сохранять будет все в PSD.

Неправильное условие. Если вам нужно в финале добавить в документ информацию о его пути, в изображение, то и запускайте этот скрипт вручную - File > Scripts > ... (or Browse), если ФШ младше ЦС2, то File > Automate > Scripts ... (or Browse). Если скрипт лежит в ...\Presets\Scripts, то он после запуска Шопа будет виден в меню, а если нет, или не виден - командой Browse вы можете вызвать диалог открытия файла и указать где этот скрипт находится.

Чтобы быстро его запускать - запишите вызов скрипта в экшн, экшну назначьте шорткат.

Кстати, когда начнете пользоваться, если, то увидите что путь пишется маковецкий, как на Маках, можно в виндозный сконвертить. Ксли надо - скажете. Прямо в коде скрипта вы можете изменить размер текста в пунктах: newTextLayer.textItem.size = 10; - меняйте только данные, 10 на 20, и тп.; и цвет - там ясно где.

С ФШ 7.0.1 шел скрипт AddTimeStamp.js - он тоже самое делал, только добавлял не путь, а дату-время.
 
#15
>Я вообще не понял, в JPEG же нельзя сохранить файл со слоями, подразумевалось что сохранять будет все в PSD.

Где в просьбе ниже написано, что надо в PSD? Был дополнительный вопрос и был дополнительный ответ.

>нада в coreldraw сделать, не знаешь случаем как там это осуществить ?


 
#16
Надо быть не ниже, а выше. Это был ответ monter'у, вы же не писали о жпегах, так что ж вы волнуетесь?

В жпег при завязке на событие Save сохранить будет нельзя, потому что по этому событию в документ даже без слоев будет добавлен один - нужный текст, а затем уже появится диалог Save As... в котором JPEG'а не будет.
 
#17
спасибо за все ) оч выручили. нужны имено psd файлы так что все в порядке. только вот запускаю я файл->скрипт->типа нужный скрипт) и на psd файле ничего не появляется
 
#18
А какой ФШ у вас? Я тестировал на ЦС2. Дело в том что скриптинг разивается от версии к версии и может быть так, что какой-то скрипт написанный в старшей версии в младшей не будет работать или будет глючить.

Кроме того, вы можете просто не увидеть этот текст, он белый и на 72 ппи очень мелкий получается если картинка велика. Поэтому посмотрите - появляется ли новый слой с именем FullDocumentPath или нет.

Скрипт использует трюк - вместо того чтобы искать слой с данным именем, и если найдено то использовать, он тупо пытается присвоить объектной переменной объект с данным именем. Что, если такого слоя нет, приводит к ошибке. Которая и перехватывается по ее номеру и в перехвате тогда создается новый слой и назначаются ему все нужные параметры.

Это сделано для того, чтобы вы могли просто отредактировать этот слой в документе, скажем изменить кегль, гарнитуру, цвет и расположение, и чтобы это все скрипт не менял, а менял чтобы только содержание текста - новый путь к документу. Поэтому если такой слой есть, то скрипт меняет только его текст, а если нет - создает новый с заданными параметрами и текстом.

Так вот, я точно не знаю, но кажется в скриптинге 7-го ФШ конструкция try > catch не была предусмотрена. Кроме того, проверьте не внесли ли вы ошибок в код скрипта при его копировании и вставке в новый *.js (*jsx) док.
 
#20
ФШ 8 ЦС1 )слой FullDocumentPath появляется
newTextLayer.textItem.color = textColor; вот это значит какой цвет будет ? т е заместо textColor цвет писать ?
 
Сверху