【问题标题】:How to use Adobe Illustrator Scripting for Artboard?如何为画板使用 Adob​​e Illustrator 脚本?
【发布时间】:2018-08-28 02:16:57
【问题描述】:

我正在尝试将我的 SVG 图像作为图层文件夹加载到当前文档中。不知何故,我可以使用下面的脚本为新文档管理它,但我需要的是我想将所有图像导入到当前打开的文档中。有人可以建议我如何更改下面的脚本来执行此任务吗?

脚本源代码为:

function getFolder() {
  return Folder.selectDialog('Please select the folder to be imported:', Folder('~'));
}


function importFolderAsLayers(selectedFolder) {  
  // if a folder was selected continue with action, otherwise quit
  var document;

  var mm = 2.83464567; // Metric MM converter…  
  // Set the script to work with artboard rulers  
  app.coordinateSystem = CoordinateSystem.ARTBOARDCOORDINATESYSTEM;  

  if (selectedFolder) {
    document = app.documents.add(
      DocumentColorSpace.RGB,  
      width = 720*mm,
      height = 720*mm,
    );
    document  = app.activeDocument;

    var firstImageLayer = true;
    var newLayer;
    var thisPlacedItem;
    var posX=10;
    var posY=30;
    var count=0;

    // create document list from files in selected folder
    var imageList = selectedFolder.getFiles();

    for (var i = 0; i < imageList.length; i++) {
      if (imageList[i] instanceof File) {
        var fileName = imageList[i].name.toLowerCase();
        if( (fileName.indexOf(".svg") == -1) ) {
          continue;
        } else {
          if( firstImageLayer ) {
            newLayer = document.layers[0];
            firstImageLayer = false;
          } else {
            newLayer = document.layers.add();
          }
          // Give the layer the name of the image file
          newLayer.name = fileName.substring(0, fileName.indexOf(".") );

          // Place the image on the artboard
          newGroup = newLayer.groupItems.createFromFile( imageList[i] );
          newGroup.position = [ posX , posY ];
        }
      }
      posX += newGroup.width;
      if(posX > (newGroup.width*16)) {
        posX = 0;
        posY -= newGroup.height;
      }
    }
    if( firstImageLayer ) {
      // alert("The action has been cancelled.");
      // display error message if no supported documents were found in the designated folder
      alert("Sorry, but the designated folder does not contain any recognized image formats.\n\nPlease choose another folder.");
      document.close();
      importFolderAsLayers(getFolder());
    }
  } else {
    // alert("The action has been cancelled.");
    // display error message if no supported documents were found in the designated folder
    alert("Rerun the script and choose a folder with images.");
    //importFolderAsLayers(getFolder());
  }
}

// Start the script off
importFolderAsLayers( getFolder() );

【问题讨论】:

  • 你试过删除document = app.documents.add(...吗?这应该可以防止创建新文档。下一行会将活动(即打开的)文档分配给document 变量。
  • 是的,我已经尝试过了,但下面一行出现错误'
  • 如果“下面的行”是指document = app.activeDocument,是否有打开的 AI 文件?如果是,是否处于 RGB 颜色模式?
  • 知道了。非常感谢。

标签: javascript adobe adobe-illustrator


【解决方案1】:

只需从脚本中删除这些行:

document = app.documents.add(
  DocumentColorSpace.RGB,  
  width = 720*mm,
  height = 720*mm,
);

【讨论】:

    猜你喜欢
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    相关资源
    最近更新 更多