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

  • Автор темы Автор темы Nikle
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Nikle

Участник
Топикстартер
Сообщения
379
Реакции
57
Можно ли как то добавить имя файла без расширения скриптом в тестовом виде в нужное место монтажной области? Простите задача скорее всего тривиальная,но поиском искал и не нашел.
 
Код:
  var name     = ('' + activeDocument.name),
      txtFrame = activeDocument.textFrames.add();

  txtFrame.contents = name.slice( 0, name.lastIndexOf( '.' ) );
  txtFrame.top = -100;
  txtFrame.left = 100;
 
  • Спасибо
Реакции: Nikle
Код:
(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) );
 
да я проверил, slice(0,-1) возвращает исходную строку, так что все ок )
 
только отрезает последный символ, так что замечание было правильное
 
Странно. После отработки скрипта возвращает вот это. Не понял что получается. Я к сожалению со скриптингом не связывался до сих пор. По этому не понимаю что делать. Может я не правильно сформулировал задачу. По пробую сформулировать. У меня существует номер заказа, который формируется по имени файла который открыт. Хотелось чтобы автоматически имя файла активного в данный момент окна прописывалось в нужную мне строчку бланка. Бланк как на скриншоте.
 

Вложения

  • 2016-03-17 09-55-33 Скриншот экрана.png
    2016-03-17 09-55-33 Скриншот экрана.png
    247.4 КБ · Просм.: 1 002
  • 2016-03-17 10-09-55 Скриншот экрана.png
    2016-03-17 10-09-55 Скриншот экрана.png
    564.1 КБ · Просм.: 1 040
а покажите, что именно вы запускаете - целиком код
у вас app.name используется вместо имени документа
 
  • Спасибо
Реакции: Nikle
Долго пользуюсь такой конструкцией, может пригодиться

Код:
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
Статус
Закрыто для дальнейших ответов.