【问题标题】:JSX/Photoshop: app.activeDocument.saveAs() returning errorJSX/Photoshop:app.activeDocument.saveAs() 返回错误
【发布时间】:2015-04-15 22:00:57
【问题描述】:

我正在尝试将 activeDocument 保存为 .psd,但它返回此错误

错误:出现一般 Photoshop 错误。此版本的 Photoshop 中可能不提供此功能。

我的脚本:

#target photoshop

var fileRef = new File(app.path.toString() + "/Samples/template.psd");
var docRef = open(fileRef);

//target text layer
var layerRef = app.activeDocument.layers.getByName("Text");

//user input
var newText = prompt("Editing " + layerRef.name, "enter new text: ");

//change contents
layerRef.textItem.contents = newText;

//save
var savePath = "/Samples/" + newText + ".psd";
var saveFile = new File(savePath);
var saveOptions = new PhotoshopSaveOptions();
saveOptions.alphaChannels = false;
saveOptions.annotations = false;
saveOptions.embedColorProfile = true;
saveOptions.layers = true;
saveOptions.spotColors = false;

app.activeDocument.saveAs(saveFile, saveOptions, true, Extension.LOWERCASE);
app.activeDocument.close();

我想要做的基本上是,一遍又一遍地复制模板文件,只替换文本层的内容,然后将其保存在我在文本层中替换的字符串下。

非常感谢任何提示或帮助。

【问题讨论】:

    标签: javascript runtime-error photoshop photoshop-script jsx


    【解决方案1】:

    我怀疑您最初尝试的问题是您没有指定完整路径。我总是提供一个完整的路径——即使它只是一个临时位置,比如“/c/temp/myfile.psd”。

    【讨论】:

      【解决方案2】:

      已解决

      我通过变通解决了我的问题。我将脚本和模板文件都移到了 Photoshop 目录中,并将app.path.toString() 添加到了saveFile 输出变量中。所以看来需要先将路径转成字符串再保存。​​

      到目前为止,我还不确定如何在 Photoshop 目录之外工作,但对我来说这很有效,所以我很高兴。这是一个相当粗糙的,但我愿意接受建议。因此,如果有人遇到类似问题,他们可以将其作为参考。

      #target photoshop
      
      var loop = true;
      var filePath = "/Samples/template.psd";
      
      while(loop) {
        openTemplate(filePath);
        var layerRef = app.activeDocument.layers.getByName("Text"); //target text layer
        var newText = prompt("Editing " + layerRef.name, "enter new text: "); //user input
      
        if(newText == "stop") { //stop loop by entering 'stop'
          loop = false;
        }
      
        layerRef.textItem.contents = newText;
        var savePath = app.path.toString() + "/Samples/" + newText + ".psd";
        var saveFile = new File(savePath);
        savePSD(saveFile);
        app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
      }
      
      function openTemplate(filePath) { //open template.psd
        var fileRef = new File(app.path.toString() + filePath);
        var docRef = open(fileRef);
      }
      
      function savePSD(saveFile) { //saveas newText.psd
        var saveOptions = new PhotoshopSaveOptions();
        saveOptions.alphaChannels = false;
        saveOptions.annotations = false;
        saveOptions.embedColorProfile = true;
        saveOptions.layers = true;
        saveOptions.spotColors = false;
        app.activeDocument.saveAs(saveFile, saveOptions, true, Extension.LOWERCASE);
      }
      

      【讨论】:

        猜你喜欢
        • 2019-06-25
        • 1970-01-01
        • 2018-05-19
        • 1970-01-01
        • 2021-05-14
        • 2020-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多