我在 Photoshop Extendscript 中创建了一个小脚本,现在希望添加从脚本中打开 pdf 帮助文件的功能。
我已经创建了 pdf 格式的帮助文件,它位于名为“assets”的文件夹中,该文件夹位于脚本自己的父文件夹中。
我试图让 pdf 文件显示但没有结果,我只是不断收到错误消息“找不到”
这是我的代码片段:
BTNg.HelpBtn.onClick = function(){
var STShelp = (new File($.fileName)).parent + '/assets/Help.pdf';
alert(STShelp);
if (STShelp.exists){
try{STShelp.execute();}
catch(e){alert('Help ' + STShelp + ' failed to open.');};
}
else {alert('Help file ' + STShelp + ' was not found.');}
}
第一个警报纯粹是为了让我检查变量 STShelp 中保存的路径。 此警报中显示的路径是:
/c/Program%20Files/Adobe/Adobe%20Photoshop%20CS6%20(64%20Bit)/Presets/Scripts/Star%20Trail%20Stacker/assets/Help.pdf
这是正确的路径,如:
C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\Presets\Scripts\Star Trail Stacker\assets\Help.pdf
但随后会抛出此错误:
Help file /c/Program%20Files/Adobe/Adobe%20Photoshop%20CS6%20(64%20Bit)/Presets/Scripts/Star%20Trail%20Stacker/assets/Help.pdf was not found.
我知道保存在 STShelp 变量中的路径看起来有点奇怪,因为它是正斜杠和前导正斜杠,但我确信这就是 Extendscript 解释路径的方式。
我已经通过更改行进行了某种操作:
var STShelp = (new File($.fileName)).parent + '/assets/Help.pdf';
到
var STShelp = (new File($.fileName)).parent;
然后警报将路径显示为:
/c/Program%20Files/Adobe/Adobe%20Photoshop%20CS6%20(64%20Bit)/Presets/Scripts/Star%20Trail%20Stacker
这是脚本的父文件夹,当我单击此警报对话框上的“确定”按钮时,文件夹资源管理器窗口将在此父位置打开,期望通过打开包含的“ Assets ”文件夹手动搜索 Help.pdf 文件。
如果我这样做,Help.pdf 确实会显示,所以 pdf 文件本身没有任何问题,我似乎无法以编程方式访问它。
如有任何帮助,我们将不胜感激。
问候..,
最佳答案
你应该像这样得到你的文件:
var path = File($.fileName).parent.fsName + '/assets/Help.pdf';
var pdf = File(path);
if(pdf.exists){
pdf.execute();
}
关于javascript - 在 Extendscript (Photoshop Script) 中打开 pdf 帮助文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36041266/