Indesign CS6 Scripting - Exporting images

前端 未结 2 1212
抹茶落季
抹茶落季 2021-01-03 15:57

I\'m having trouble writing a js script in indesign cs6 to export my formatted images. the code below (found on this website and slightly modified) only opens the document.<

相关标签:
2条回答
  • 2021-01-03 16:33

    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.");
    }
    
    0 讨论(0)
  • 2021-01-03 16:46

    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);
        }
    }
    
    0 讨论(0)
提交回复
热议问题