【问题标题】:Indesign CS6 Scripting - Exporting imagesIndesign CS6 脚本 - 导出图像
【发布时间】:2018-10-11 22:45:35
【问题描述】:

我在 indesign cs6 中编写 js 脚本以导出我的格式化图像时遇到问题。下面的代码(在本网站上找到并稍作修改)仅打开文档。

理想情况下,脚本会遍历我文档中所有格式化/裁剪的图像,并将它们导出到桌面上的新文件夹中,但使用原始文件名。

任何帮助将不胜感激:

test();
function test(){

var myDoc = app.open('/Users/StudioA/Desktop/file.indd'); 
var myGroups = myDoc.groups;

//for each group...
for (var i = 0;i < myGroups.length; i++){
    // for each rectangle in the group...
    for(var r = 0; r< myGroups[i].rectangles.length; r++){

         var myRect = myGroups[i].rectangles[r];
           app.jpegExportPreferences.exportResolution = 300;
           app.jpegExportPreferences.jpegQuality = JPEGOptionsQuality.MAXIMUM;

           //give it a unique name
           var myFile = new File('/Users/StudioA/Desktop/Export/' + myRect.name + '.jpg');

           myRect.exportFile(ExportFormat.JPG, myFile);

           }
       }

 }

【问题讨论】:

    标签: javascript export adobe-indesign


    【解决方案1】:

    文件名不在矩形上,而是在与放置的图形相关的链接上。 给定一个打开的文档,这应该可以满足您的要求:

    test();
    
    
    
    function test() {
    
        var myDoc = app.activeDocument, apis = myDoc.allPageItems, rect, fileName;
    
    
        while ( rect = apis.pop() )
        {
            if ( !(rect instanceof Rectangle) || !rect.graphics[0].isValid ){ continue; }
    
            fileName = File ( rect.graphics[0].itemLink.filePath ).name;
            fileName = fileName.replace( /\.[a-z]{2,4}$/i, '.jpg' );
    
            app.jpegExportPreferences.exportResolution = 300;
            app.jpegExportPreferences.jpegQuality = JPEGOptionsQuality.MAXIMUM;
    
            //give it a unique name
            var myFile = new File (Folder.desktop+"/"+ fileName);
    
            rect.exportFile(ExportFormat.JPG, myFile);
        }
    }
    

    【讨论】:

    • 谢谢你,@Loic。我从这段代码中学到了一些东西。我没有经历过将变量设置为三个不同的项目(apis = ...),而且我以前也没有见过任何人使用 .pop() 。这看起来是非常有用且精简的代码。
    【解决方案2】:

    只需添加我的详细版本,它适用于 InDesign 中的当前选择并提供控制台反馈。它使用前缀“crop_”重命名图像并将它们保存到 ~/temp

    exportSelectedImages();
    
    function exportSelectedImages() {
        // configure export settings
        app.jpegExportPreferences.exportResolution = 72;
        app.jpegExportPreferences.jpegQuality = JPEGOptionsQuality.HIGH;
    
        // collect selected objects
        var selected = app.activeDocument.selection;
        $.writeln("Got " + selected.length + " selected objects...");
    
        // process selected objects
        for (var i = 0; i < selected.length; i++) {
            var cursor = selected[i];
            var img = cursor.images;
    
            $.writeln("Processing #" + (i+1) + "/" + selected.length);
            $.writeln("\t Type: " + cursor.constructor.name);
    
            // verify if object contains an image or not
            if (cursor.images.length > 0) {     
                var img = cursor.images[0];
                $.writeln("\t Contains image of type " + img.imageTypeName);
                var imageFileName = cursor.images[0].itemLink.name;
                $.writeln("\t File Name: " + imageFileName);
            } else {
                $.writeln("\t Not an image");
            }
    
            // save the object to a jpeg in path specified below
            var myFile = new File('~/temp/' + "crop_" + imageFileName + '.jpg');
            cursor.exportFile(ExportFormat.JPG, myFile);
    
         }
    
        $.writeln("Done.");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多