javascript - 在 Extendscript (Photoshop Script) 中打开 pdf 帮助文件

标签 javascript pdf photoshop extendscript photoshop-script

我在 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/

相关文章:

Android 图像未出现在 iText pdf 中

animation - Windows 8/Server 2012风格等待/加载透明GIF/APNG

javascript - 在启用分页的情况下记住 ExtJS 网格中的选择

pdf - Mercurial和Word或PDF文档

c# - 如何在浏览器中编辑pdf并将其保存到服务器

algorithm - Photoshop 的高光或阴影改变背后的算法是什么?

javascript - 启动脚本 Photoshop 出现错误 25

javascript:从局部变量修改全局变量

javascript - Uncaught ReferenceError 和 undefined 有什么区别?

javascript - 如何在 Sequelize ORM 中添加自定义数据类型