[AI CC-CC2021] Вопрос про как добавить имя файла скриптом в Illustrator CC.

Статус
Закрыто для дальнейших ответов.

Nikle

Участник
Топикстартер
Сообщения
365
Реакции
56
Можно ли как то добавить имя файла без расширения скриптом в тестовом виде в нужное место монтажной области? Простите задача скорее всего тривиальная,но поиском искал и не нашел.
 

dumbm1

10 лет на форуме
Сообщения
421
Реакции
196
Код:
  var name     = ('' + activeDocument.name),
      txtFrame = activeDocument.textFrames.add();

  txtFrame.contents = name.slice( 0, name.lastIndexOf( '.' ) );
  txtFrame.top = -100;
  txtFrame.left = 100;
 
  • Спасибо
Реакции: Nikle

dumbm1

10 лет на форуме
Сообщения
421
Реакции
196
Код:
(function addDocName (txtFrameTop, txtFrameLeft) {
  activeDocument.rulerOrigin = [0, activeDocument.height];

  var txtFrame = activeDocument.textFrames.add(),
      name     = activeDocument.name;

  activeDocument.fullName.exists == true ?
    txtFrame.contents = name.slice(0, name.lastIndexOf('.')) :
    txtFrame.contents = name;

  txtFrame.top  = txtFrameTop;
  txtFrame.left = txtFrameLeft;
} (-10, 10) );
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
да я проверил, slice(0,-1) возвращает исходную строку, так что все ок )
 

dumbm1

10 лет на форуме
Сообщения
421
Реакции
196
только отрезает последный символ, так что замечание было правильное
 

Nikle

Участник
Топикстартер
Сообщения
365
Реакции
56
Странно. После отработки скрипта возвращает вот это. Не понял что получается. Я к сожалению со скриптингом не связывался до сих пор. По этому не понимаю что делать. Может я не правильно сформулировал задачу. По пробую сформулировать. У меня существует номер заказа, который формируется по имени файла который открыт. Хотелось чтобы автоматически имя файла активного в данный момент окна прописывалось в нужную мне строчку бланка. Бланк как на скриншоте.
 

Вложения

  • 2016-03-17 09-55-33 Скриншот экрана.png
    2016-03-17 09-55-33 Скриншот экрана.png
    247.4 КБ · Просм.: 960
  • 2016-03-17 10-09-55 Скриншот экрана.png
    2016-03-17 10-09-55 Скриншот экрана.png
    564.1 КБ · Просм.: 997

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
а покажите, что именно вы запускаете - целиком код
у вас app.name используется вместо имени документа
 
  • Спасибо
Реакции: Nikle

sani5

Участник
Сообщения
18
Реакции
3
Долго пользуюсь такой конструкцией, может пригодиться

Код:
var myDocument = app.activeDocument; // document
activeDocument.rulerOrigin = [0, activeDocument.height];
var format_preset = "{FILENAME}         {DATE}     {TIME}"; // выводимая информация
// var format_preset = "{FILENAME}{FILEEXT}         {DATE}     {TIME}"; // выводимая информация
var Dateformat = "dd.mm.yyyy"; // формат даты

// Text =============================================================================
var myTextFrame = myDocument.textFrames.add();
myTextFrame.contents = " ";

myTextFrame.top = -20;
myTextFrame.left = 20;
myTextFrame.selected = true;
redraw();

date_n_time();

function TodayDate()
{
    var Today = new Date();
    var Day = Today.getDate();
    var Month = Today.getMonth() + 1;
    var Year = Today.getYear();
    var Year = Today.getFullYear();
    var PreMon = ((Month < 10) ? "0" : "");
    var PreDay = ((Day < 10) ? "0" : "");
    var theDate = Dateformat.replace(/dd/, PreDay + Day);
    theDate = theDate.replace(/mm/, PreMon + Month);
    theDate = theDate.replace(/d/, Day);
    theDate = theDate.replace(/m/, Month);
    theDate = theDate.replace(/yyyy/, Year);
    theDate = theDate.replace(/yy/, Year.toString().substr(2, 2));
    return theDate;
};

function TodayTime()
{
    var Today = new Date();
    var Hours = Today.getHours();
    var Minutes = Today.getMinutes();
    var Suffix = ""; // текст после времени
    var PreHour = ((Hours < 10) ? "0" : "");
    var PreMin = ((Minutes < 10) ? "0" : "");
    return PreHour + Hours + ":" + PreMin + Minutes + Suffix;
};

function DateUpdate(name)
{
    var docpath = myDocument.path.fsName;
    var docname = myDocument.name.replace(/(.*?)(?:\.([^.]+))?$/, '$1');
    var extension = myDocument.name.replace(/(.*?)(?:(\.[^.]+))?$/, '$2');

    if (docpath.slice(2, 3) == "\\")
    {
        docsep = "\\";
    }
    else
    {
        docsep = ":";
    };
    var content = name.slice(11);
    var content = content.replace(/\{FILE\}/, docpath + docsep + docname);
    var content = content.replace(/\{FILEPATH\}/, docpath);
    var content = content.replace(/\{FILENAME\}/, docname);
    var content = content.replace(/\{FILEEXT\}/, extension);
    var content = content.replace(/\{DATE\}/, TodayDate());
    var content = content.replace(/\{TIME\}/, TodayTime());
    return content;
};

function date_n_time()
{
    selection[0].name = "actualDate:" + format_preset;
    selection[0].contents = DateUpdate(selection[0].name);
    selection[0].selected = false;
};
 
  • Спасибо
Реакции: Nikle и VVVSLAVA
Статус
Закрыто для дальнейших ответов.