在InDesign脚本中,导入时调整图像大小

时间:2017-05-31 10:52:25

标签: javascript adobe-indesign

我有一个脚本可以找到图像名称并用它的图像替换它。

这就是我的InDesign文件中的文字。

  

@ blue_dress_xl.JPG @

     

Blue Dress XL

     

Lorem ipsum ......

文本分为3列,每列的宽度为40,667 mm。 当我使用脚本将@ blue_dress_xl.JPG @替换为图像时,图像会100%显示。

我在JS中并不那么强大,我尝试了一些不同的东西,但它并没有真正起作用。

有没有办法在导入时将图像宽度设置为“40,667 mm”?

main();

function main() {
var name, f, file, text,
arr = [];

if(app.documents.length != 0) {
    var doc = app.activeDocument;   
    var folder = Folder.selectDialog("Choose a folder with images");

    if (folder != null) {
        app.findObjectPreferences = app.changeGrepPreferences  = NothingEnum.NOTHING;
        app.findGrepPreferences.findWhat = "@.+?@";
        f = doc.findGrep(true);

        for (i = 0; i < f.length; i++) {
            name = f[i].contents.replace(/@/g, "");
            file = new File(folder.fsName + "/" + name);

            if (file.exists) {
                f[i].remove();
                f[i].insertionPoints[0].place(file);
            }
            else {
                arr.push("File doesn't exist '" + name + "'");
            }
        }

        app.findObjectPreferences = app.changeGrepPreferences  = NothingEnum.NOTHING;

        arr.push("------------------------------------------");
        text = arr.join("\r");
        writeToFile(text);
    }
}
else{
    alert("Please open a document and try again.");
}   
}

function writeToFile(text) {
var file = new File("~/Desktop/Place inline images.txt");
if (file.exists) {
    file.open("e");
    file.seek(0, 2);
}
else {
    file.open("w");
}
file.write(text + "\r"); 
file.close();
}

1 个答案:

答案 0 :(得分:0)

&#13;
&#13;
main();

function main() {
var name, f, file, text,
arr = [];

if(app.documents.length != 0) {
    var doc = app.activeDocument;   
    var folder = Folder.selectDialog("Choose a folder with images");

    if (folder != null) {
        app.findObjectPreferences = app.changeGrepPreferences  = NothingEnum.NOTHING;
        app.findGrepPreferences.findWhat = "@.+?@";
        f = doc.findGrep(true);

        for (i = 0; i < f.length; i++) {
            name = f[i].contents.replace(/@/g, "");
            file = new File(folder.fsName + "/" + name);

            if (file.exists) {
                f[i].remove();
                var rect = f[i].insertionPoints[0].rectangles.add( {geometricBounds:[0,0, 60, 40.667 ]} );
				rect.place ( file );
				rect.fit ( FitOptions.CONTENT_TO_FRAME );
            }
            else {
                arr.push("File doesn't exist '" + name + "'");
            }
        }

        app.findObjectPreferences = app.changeGrepPreferences  = NothingEnum.NOTHING;

        arr.push("------------------------------------------");
        text = arr.join("\r");
        writeToFile(text);
    }
}
else{
    alert("Please open a document and try again.");
}   
}

function writeToFile(text) {
var file = new File("~/Desktop/Place inline images.txt");
if (file.exists) {
    file.open("e");
    file.seek(0, 2);
}
else {
    file.open("w");
}
file.write(text + "\r"); 
file.close();
}
&#13;
&#13;
&#13;