Photoshop javascript保存错误8800

时间:2012-10-09 20:48:10

标签: windows-7 save photoshop-script jsx

在我的javascript中,在Windows 7中,Photoshop CS2& Photoshop CS5,它会抛出一个错误:

  

错误8800:发生一般Photoshop错误。此版本的Photoshop可能无法使用此功能    - 无法将副本另存为“C:... \ wcb-010B-11Y.jpg”,因为无法找到该文件。
  行:458
   - > docRef.saveAs(saveFile,jpgSaveOptions,true,Extension.LOWERCASE);

以下是保存图片的代码摘要:

var selectedSaveDir = "~/Desktop/";
var sFileNamePreFix = "wcb-";
var docRef = app.activeDocument; 
var docName = app.activeDocument.name;
var docNewName = docName.substr( 0, docName.length - 4 );  // strip file extension
var sNewDocName = sFileNamePreFix + docNewName + ".jpg"
var sNewFileName = selectedSaveDir + sNewDocName;
//alert( "sNewFileName = " + sNewFileName );     // test to verify correct location
var saveFile = new File(sNewFileName);
jpgSaveOptions = new JPEGSaveOptions();
jpgSaveOptions.quality = 12;
docRef.saveAs(saveFile, jpgSaveOptions, true, Extension.LOWERCASE);

在Windows XP中,此脚本在CS2中运行良好且没有任何问题....仅在Windows 7中使用CS2或CS5发生此问题。

问题似乎与:Photoshop Javascript scripting saving and closing document类似 但我不知道他的操作系统。

我添加了“提醒”(并确认保存文件夹和名称是正确的,可以保存到,但同样的问题。

它可能是Windows 7中的UAC问题吗?你怎么解决它?我已经关闭了所有UAC设置(我认为我做得正确),但它仍然会发生。

任何帮助?

2 个答案:

答案 0 :(得分:0)

你错过了#34; var docRef = app.activeDocument;" (我已添加);但除此之外,在CS2中,脚本将jpeg保存到桌面(wcb-text test.jpg)。这很明显,但是你确定图像是扁平化的,或者不包含任何无法存储在jpeg中的信息 - 例如路径。

在保存之前尝试强制展平

//flatten the image
docRef.flatten(); 

要尝试的另一件事是将文件保存到另一个目录。我知道长文件名(尤其是空格)可能会导致问题 - 我认为文件路径中有300个字符的限制。

答案 1 :(得分:0)

我刚刚发现,在PS的新版本中,此特定路径变量给出错误8800:

var selectedSaveDir = "~/Desktop/";

使用完整路径,并使用撇号代替引号:

var selectedSaveDir = 'C:/Users/yourname/Desktop/';