我在Photoshop Extendscript&amp ;;中创建了一个小脚本。现在希望添加从脚本中打开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
这是脚本&的父文件夹。当我单击此警报对话框上的“确定”按钮时,将在此父位置打开一个文件夹资源管理器窗口,希望通过打开包含的资产来手动搜索Help.pdf文件。文件夹中。
如果我这样做,确实会显示Help.pdf,因此pdf文件本身并没有什么变得棘手,我似乎无法以编程方式进行操作。
任何帮助都将不胜感激。
问候...,
答案 0 :(得分:2)
你应该得到这样的文件:
var path = File($.fileName).parent.fsName + '/assets/Help.pdf';
var pdf = File(path);
if(pdf.exists){
pdf.execute();
}