Indesign CS6 Scripting - Exporting images

ε祈祈猫儿з 提交于 2019-12-03 21:21:52
Loic Aigon

The file name isn't located on the rectangle but on the link related to the placed graphic. This should do what you want given an open document:

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

Just adding my verbose version of this, which works from the current selection in InDesign and provides console feedback. It renames the images with the prefix "crop_" and saves them to ~/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.");
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!