Indesign CS6 脚本 - 导出图像

Indesign CS6 Scripting - Exporting images

本文关键字:图像 CS6 脚本 Indesign      更新时间:2023-09-26

我在 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);
           }
       }
 }

文件名不位于矩形上,而是位于与放置的图形相关的链接上。这应该在给定打开文档的情况下执行您想要的操作:

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);
    }
}

只需添加我的详细版本,该版本适用于 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.");
}