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

  • Автор темы Автор темы AnyLila
  • Дата начала Дата начала
да поменял, он сохранил один 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
 
Последнее редактирование:
Почистил скрипт от лишнего.он даже сохраняет 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 );
        
 
  }
}());
 
изучать лень, но имхо нужна еще такая строчка: saveOpts.saveMultipleArtboards = true;
 
  • Спасибо
Реакции: _MBK_
я так подохреваю, нужна еще команда писать текущий артборд в saveOpt
 
УПС, туплю, это скорей к епсам относится, ну, тогда что-то вроде этого: saveOpts.artboardRange ="''+(i+1);
Зы. Извиняюсь, некогда ща =(
 
  • Спасибо
Реакции: ACTPOHOM
Или вообще туплю, туплю, и нужно просто удалять все артбоарды, оставлять один, делать сохранение, а потом переоткрывать документ и повторять сначала.

Не по теме:
=) Короч, простите, непонятно зачем влез
 
Еще забыли про artboardRange - по умолчанию он пустой то есть все
 
  • Спасибо
Реакции: ACTPOHOM
не не, вариант с range кажется правдоподобный, пока не работает, но подумаю.
 
По идее строка типа "0-2" или "0" как то заденпроходно
Я не пробовал ни разу такое
 
это строка, которая содержит номер артбоарда или диапазон, как я понимаю
Код:
saveOpts.artboardRange = ''+(i+1);
 
Последнее редактирование:
  • Спасибо
Реакции: ACTPOHOM
Вообщем это:

Код:
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
Экспортировать артбоарды в pdf (именно экспортировать и именно артбоарды) лучше всего вызовом экшена из скрипта.
 
  • Спасибо
Реакции: ACTPOHOM
Братья, спасибо. заработало.
 
Еще вопрос.

doc.close();
как без сохранения закрыться ?
 
doc.close(SaveOptions.DONOTSAVECHANGES);
и наоборот, соответственно
doc.close(SaveOptions.SAVECHANGES);
 
Последнее редактирование:
  • Спасибо
Реакции: ACTPOHOM
Или перед закрытием
doc.saved=true;
 
  • Спасибо
Реакции: ACTPOHOM
Могуч и широк язык java