在Extendscript中打开pdf帮助文件(Photoshop脚本)

时间:2016-03-16 16:17:51

标签: javascript pdf photoshop extendscript photoshop-script

我在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文件本身并没有什么变得棘手,我似乎无法以编程方式进行操作。

任何帮助都将不胜感激。

问候...,

1 个答案:

答案 0 :(得分:2)

你应该得到这样的文件:

var path = File($.fileName).parent.fsName + '/assets/Help.pdf';
var pdf = File(path);
if(pdf.exists){
    pdf.execute();
}