[AI CC-CC2021] Экспорт артбордов, помогите изменить скрипт

ACTPOHOM

12 лет на форуме
Сообщения
2 981
Реакции
1 133
да поменял, он сохранил один PDF многостраничный
ну и джепеги не нужны.

Код:
//    Save as EPS
  //
  ///////////////////////////////////////////////////////

  // Call function getESPOptions get the EPSSaveOptions for the files
  epsSaveOpts = getEPSOptions("10");
  targetFile  = new File(destFolder + '/' + docName + "-Ai10.pdf");
 
    //doc.saveAs(targetFile, epsSaveOpts);
 
    saveOpts = new PDFSaveOptions();
saveOpts.compatibility = PDFCompatibility.ACROBAT5;
saveOpts.generateThumbnails = true;
saveOpts.preserveEditability = true;
doc.saveAs(targetFile, saveOpts );
    
    
    statusMsg += "EPS Ai10\t\t...\tOK\n"

  // Now EPS file is active. Reopen Ai file
 
Последнее редактирование:

ACTPOHOM

12 лет на форуме
Сообщения
2 981
Реакции
1 133
Почистил скрипт от лишнего.он даже сохраняет PDF по кол-ву Артбордов, но все 3 артборда в каждый файл.
что не так ?

Код:
//@target illustrator
(function f() {
  var doc;
  var fileType, targetFile, targetFile1, jpgExportOpts, epsSaveOpts;
  var docName;
  var pathName;
  var destFolder;
  var statusMsg        = "\n";
  var userInteract     = userInteractionLevel;
  userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;

  if (!app.documents.length) {
    alert("There are no documents opened. Nothing has been done.");
    return;
  }

  doc = activeDocument;
  doc.save();
  docName = doc.name;

  // check if the filename has extension
  if (docName.indexOf('.')) {
    var token = docName.lastIndexOf('.');
    docName   = docName.substring(0, token);
  }

  pathName   = doc.fullName + ''; // convert pathName to string. Otherwise lastIndexOf does not work
  token      = pathName.lastIndexOf('/');
  destFolder = pathName.substring(0, token);

  //
  //    Export PDF
  //
  for (var i = 0; i < doc.artboards.length; i++) {
    var artb = doc.artboards[i];
    doc.artboards.setActiveArtboardIndex(i);
    var artbWidth  = artb.artboardRect[2] - artb.artboardRect[0];
    var artbHeight = artb.artboardRect[1] - artb.artboardRect[3];

  
        
      if (i < 9) {
        targetFile  = new File(destFolder + '/' + docName + artb.name +".pdf");
      } else {
        targetFile  = new File(destFolder + '/' + docName + artb.name +".pdf");
      }
      saveOpts = new PDFSaveOptions();
        
saveOpts.compatibility = PDFCompatibility.ACROBAT5;
saveOpts.generateThumbnails = true;
saveOpts.preserveEditability = true;
doc.saveAs(targetFile, saveOpts );
        
 
  }
}());
 

qsedftghk

фея
15 лет на форуме
Сообщения
2 028
Реакции
1 197
изучать лень, но имхо нужна еще такая строчка: saveOpts.saveMultipleArtboards = true;
 
  • Спасибо
Реакции: _MBK_

ACTPOHOM

12 лет на форуме
Сообщения
2 981
Реакции
1 133
я так подохреваю, нужна еще команда писать текущий артборд в saveOpt
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835

qsedftghk

фея
15 лет на форуме
Сообщения
2 028
Реакции
1 197
УПС, туплю, это скорей к епсам относится, ну, тогда что-то вроде этого: saveOpts.artboardRange ="''+(i+1);
Зы. Извиняюсь, некогда ща =(
 
  • Спасибо
Реакции: ACTPOHOM

qsedftghk

фея
15 лет на форуме
Сообщения
2 028
Реакции
1 197
Или вообще туплю, туплю, и нужно просто удалять все артбоарды, оставлять один, делать сохранение, а потом переоткрывать документ и повторять сначала.

Не по теме:
=) Короч, простите, непонятно зачем влез
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Еще забыли про artboardRange - по умолчанию он пустой то есть все
 
  • Спасибо
Реакции: ACTPOHOM

ACTPOHOM

12 лет на форуме
Сообщения
2 981
Реакции
1 133
не не, вариант с range кажется правдоподобный, пока не работает, но подумаю.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
По идее строка типа "0-2" или "0" как то заденпроходно
Я не пробовал ни разу такое
 

qsedftghk

фея
15 лет на форуме
Сообщения
2 028
Реакции
1 197
это строка, которая содержит номер артбоарда или диапазон, как я понимаю
Код:
saveOpts.artboardRange = ''+(i+1);
 
Последнее редактирование:
  • Спасибо
Реакции: ACTPOHOM

qsedftghk

фея
15 лет на форуме
Сообщения
2 028
Реакции
1 197
Вообщем это:

Код:
saveOpts.compatibility = PDFCompatibility.ACROBAT5;
saveOpts.generateThumbnails = true;
saveOpts.preserveEditability = true;
doc.saveAs(targetFile, saveOpts );

Замени на это:


Код:
saveOpts.compatibility = PDFCompatibility.ACROBAT5;
saveOpts.generateThumbnails = true;
saveOpts.preserveEditability = true;
saveOpts.artboardRange = ''+(i+1);
doc.saveAs(targetFile, saveOpts );

И должно все заколбасится
 
  • Спасибо
Реакции: ACTPOHOM

Oleg Butrin

20 лет на форуме
Сообщения
1 989
Реакции
1 213
Экспортировать артбоарды в pdf (именно экспортировать и именно артбоарды) лучше всего вызовом экшена из скрипта.
 
  • Спасибо
Реакции: ACTPOHOM

ACTPOHOM

12 лет на форуме
Сообщения
2 981
Реакции
1 133
Братья, спасибо. заработало.
 

ACTPOHOM

12 лет на форуме
Сообщения
2 981
Реакции
1 133
Еще вопрос.

doc.close();
как без сохранения закрыться ?
 

qsedftghk

фея
15 лет на форуме
Сообщения
2 028
Реакции
1 197
doc.close(SaveOptions.DONOTSAVECHANGES);
и наоборот, соответственно
doc.close(SaveOptions.SAVECHANGES);
 
Последнее редактирование:
  • Спасибо
Реакции: ACTPOHOM

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Или перед закрытием
doc.saved=true;
 
  • Спасибо
Реакции: ACTPOHOM

ACTPOHOM

12 лет на форуме
Сообщения
2 981
Реакции
1 133
Могуч и широк язык java