Illustrator中用Javascript保存文件

6

我试图使用Javascript在Illustrator中保存文件,但是一直出现错误。

以下方法可以正常运行,但不符合我的要求:

// save as
var dest = "~/testme.pdf";

saveFileToPDF(dest);

function saveFileToPDF (dest) {
    var doc = app.activeDocument;
    if ( app.documents.length > 0 ) {
        var saveName = new File ( dest );
        saveOpts = new PDFSaveOptions();
        saveOpts.compatibility = PDFCompatibility.ACROBAT5; 
        saveOpts.generateThumbnails = true; 
        saveOpts.preserveEditability = true;
        alert(saveName);
        doc.saveAs( saveName, saveOpts );
    }
}

变量“dest”将文件保存到我的Mac用户帐户的根目录。我只想将文件保存在源文档的子文件夹中,因此我尝试了以下内容:

var dest = "exports/testme.pdf";

这会弹出一个对话框,".pdf" 会被突出显示,并正确地等待 "exports" 文件夹内的输入。我可以输入一些内容并保存,但它会忽略代码中指定的文件名 "testme.pdf"。我可以在 ".pdf" 上输入 "cheese",然后它就知道我想要的是什么,并将其保存在 "exports" 文件夹中,命名为 "cheese.pdf"。

我也尝试了其他方法,但都没有成功:

var dest = "exports/testme";
var dest = "/exports/testme.pdf";
var dest = "testme.pdf";

etc., etc.

What am I missing?

2个回答

6

要在不弹出对话框的情况下使用saveAs,您需要使用全局属性userInteractionLevel

var originalInteractionLevel = userInteractionLevel;
userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;

...

userInteractionLevel = originalInteractionLevel;

0

由于您想相对于您的文档进行保存,因此首先要找到当前文档的路径,方法如下:

var path = app.activeDocument.path;
var dest = path + "/exports/testme.pdf";

您还可以检查是否存在exports文件夹,如果不存在,可以使用以下脚本创建

    var path = app.activeDocument.path;
    var exportFolder = Folder(path + "/exports");
    if(!exportFolder.exists){
        exportFolder.create();
    }
    var dest = exportFolder + "/testme.pdf";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接