[AI CC-CC2022] Экспорт Artboards в jpg без учета bleeds (экспорт по обрезному формату)

  • Автор темы Автор темы deRover
  • Дата начала Дата начала
В итоге эти 3 заморочки будут больше чем весь скрипт

Имя файла _ Номер Артборда _ Имя артборда

Номер Артборда -- 2 цифры.

Из имени артборда исключить / \:*" и т.п.

Остальное решается пакетным переименованием.
 
Последнее редактирование:
А можно не сокращать имя файла хотя бы?
А разве оно сокращается? Вроде не должно...
Имя файла _ Номер Артборда _ Имя артборда

Номер Артборда -- 2 цифры.

Из имени артборда исключить / \:*" и т.п.

Остальное решается пакетным переименованием.
Да :) Так проще :) Если подойдет, можно допилить:)
 
Думаю, просто стандартное поведение Иллюстратора:
Если имена артбордов не менялись, то Имя файла + номер
Если имя артборда именено то Имя файла + имя артборда

Если такле можно конечно
Если отталкиваться от того, что у создаваемых по умолчанию слоёв всегда присутствует слово "Artboard" (русифицированные версии отбрасываем как ересь в царстве адобовом) и это слово не присутствует в измененном имени слоя, то вот прикрутил педальки, иначе см. #20 :
Код:
if (app.documents.length > 0) {
var doc = app.activeDocument;
var docName = doc.name;
var artbReg = new RegExp("Artboard","g"); // строка для регулярки
if (docName.indexOf('.') != -1) {
    var token = docName.lastIndexOf('.');
    docName   = docName.substring(0, token);
};
var savePath = Folder.selectDialog("Expot JPG to folder:");
var dest = File(savePath + "/" + docName);
exportFileToJPEG(dest);
savePath.execute(); // открывает в проводнике папку куда сохранили джипеги
};
function exportFileToJPEG(dest) {
    var exportOptions = new ExportOptionsJPEG();
    exportOptions.artBoardClipping = true;
    exportOptions.antiAliasing = false;
    exportOptions.qualitySetting = 100;
    var type = ExportType.JPEG;
    for (i=0; i<doc.artboards.length; i++) {
        doc.artboards.setActiveArtboardIndex(i);
        if (artbReg.test(doc.artboards[i].name))    // если так, то...
         { fileSpec = new File(dest + "_" + (i+1) + ".jpg"); }
          else  // а если эдак, то...
             { fileSpec = new File(dest + "_" + doc.artboards[i].name + ".jpg"); }
        app.activeDocument.exportFile(fileSpec, type, exportOptions);
    };
};
 
Последнее редактирование:
  • Спасибо
Реакции: Slx1
Допустим 2 артборда с одинаковым именем? :)
Думаю, если человеку нужен скрипт на все случаи жизни, он должен закопать в поле пять золотых, а так... достаточно всего лишь не тупить и не допускать артбоардов с одинаковыми именами. :4)
И, кстати, если продублировать артбоард, то он никак не может быть с одинаковым именем, ибо добавляется слово "copy", ну, а еесли сам переименовал кривенько, тут уж бесплатная медицина бессильна =)
 
Последнее редактирование:
А что с ними не так? Я вообщем-то тут мимо проходил =) Если какая-то личная неприязнь к пробелам, то их можно запросто регуляркой убрать/заменить на "_", например. А это, опять же, другой уровень скрипта ;]=
Нужно, дать теме немножко потомиться... С утра _MBK_ подтянется и заколбасит готовый скрипт, гыгы, лично мне - лень.
 

Не по теме:
А, увидел. Пробелы не пробелятся.
 
Свободу пробелам!

Код:
if (app.documents.length > 0) {
var doc = app.activeDocument;
var docName = doc.name;
var artbReg = new RegExp("Artboard","g"); // строка для регулярки
if (docName.indexOf('.') != -1) {
    var token = docName.lastIndexOf('.');
    docName   = docName.substring(0, token);
};
var savePath = Folder.selectDialog("Expot JPG to folder:");
var dest = File(savePath + "/" + docName);
exportFileToJPEG(dest);
savePath.execute(); // открывает в проводнике папку куда сохранили джипеги
};
function exportFileToJPEG(dest) {
    var exportOptions = new ExportOptionsJPEG();
    exportOptions.artBoardClipping = true;
    exportOptions.antiAliasing = false;
    exportOptions.qualitySetting = 100;
    var type = ExportType.JPEG;
    for (i=0; i<doc.artboards.length; i++) {
        doc.artboards.setActiveArtboardIndex(i);
        if (artbReg.test(doc.artboards[i].name))    // если так, то...
         { fileSpec = new File(dest + "_" + (i+1) + ".jpg"); }
          else  // а если эдак, то...
             { fileSpec = new File(dest + "_" + doc.artboards[i].name + ".jpg");
 }

app.activeDocument.exportFile(fileSpec, type, exportOptions);
        
        // это будет путь к файлу, который без пробелов сохранился на диск
        fileSpec2=fileSpec.path.toString()+"/"+fileSpec.name.toString().replace(new RegExp('(%20)','g'),'-');       

        // из fileSpec делаем нормальную строку вида диск:\путь\имя.jpg
       // может и красивее можно исполнить, но это не ко мне
        fileSpec=fileSpec.toString().replace(new RegExp('(/)'),'');
        fileSpec=fileSpec.toString().replace(new RegExp('(/)','g'),'\\');
        fileSpec=fileSpec.toString().replace(/\\/, ':\\');
        fileSpec=File.decode (fileSpec);

        // вжух! магия.... и перед глазами всё плывёт, плывёт....
        sss = new File(fileSpec2);
        sss.rename (fileSpec.toString());
     };
};
 
  • Спасибо
Реакции: deRover и Slx1
Да, таки кроме переименования тоже ничего в голову не пришло :) Хотя странно все это... может объяснит кто, почему с exportFile такие проблемы?
JavaScript:
#target Illustrator
if (app.documents.length > 0) {
var doc = app.activeDocument;
var docName = doc.name;
if (docName.indexOf('.') != -1) {
    var token = docName.lastIndexOf('.');
    docName   = docName.substring(0, token);
};
var savePath = Folder.selectDialog("Expot JPG to folder:");
var dest = File(savePath) + "/" + docName;
exportFileToJPEG(dest);
};
function exportFileToJPEG(dest) {
    var exportOptions = new ExportOptionsJPEG();
    exportOptions.artBoardClipping = true;
    exportOptions.antiAliasing = false;
    exportOptions.qualitySetting = 100;
    var type = ExportType.JPEG;
    for (i=0; i<doc.artboards.length; i++) {
        doc.artboards.setActiveArtboardIndex(i);
        abFn = doc.artboards[i].name.replace(/[\/?\%*:\\|"<>]/g, "-");
        abNum = String((i+1)/1000).split(".")[1];
        var fileSpec = new File(dest + "_" + abNum + "_" + abFn + ".jpg");
        app.activeDocument.exportFile(fileSpec, type, exportOptions);
        renameFp = new File(fileSpec.toString().replace(new RegExp("(%20)","g"),"-"));
        renameFp.rename(fileSpec.fsName);
    };
};
 
Последнее редактирование: