18

我是一家印刷公司的内部开发人员。

我们使用 Adob​​e Indesign CS3 和 CS5 来创建用于打印的文档。

我在 Adob​​e Extendscript 中创建了一个脚本,该脚本创建了一个 Indesign 文档,并在客户端无法自行处理一些基本转换时进行处理。

我使用 Javascript 编写了这个脚本。

是否可以通过这样的脚本调用 Web 服务?

如果是这样,怎么做?

如果没有,从桌面调用 Web 服务的最佳方式是什么?

谢谢你。

4

5 回答 5

6

截至 2022 年,我将指出

已经提到了可扩展(不再存在):

可扩展

它不是 jQuery,而是一个用于 InDesign 脚本的库。

最完整的讨论可以在Rorohiko 的博客中找到,其中有一个很好的直接示例。

于 2011-10-14T14:41:23.327 回答
5

不和是。

不,没有办法(afaik)让 InDesign 从脚本调用 Web 服务。这是非常有可能的,并且通常通过 InDesign 插件完成(您可以执行任意 c++ 代码,以便您可以做任何事情)。然而,这是一个完全不同的学习方式。

是的,可以从 ExtendScript 使用库来完成。所以基本上你的脚本会调用 Web 服务来获取数据(可能使用从 InDesign 或文档中获取的参数),然后将返回的值发送到其他 InDesign 脚本函数以执行操作。

可以在此处找到使用“可扩展”的基本示例。

编辑:由于似乎有些混乱:这些文件不是运行脚本的文件,甚至很少包含它们。脚本以 InDesign 特定的 Javascript 格式 (.jsx) 保存并由 InDesign 脚本引擎解释。

于 2011-09-28T09:00:24.263 回答
1

除了可扩展,还有 2 个替代选项:

Adobe Bridge/Bridgetalk

不能说 Adob​​e 套件的特定版本,但如果您可以使用或拥有 Adob​​e Bridge/Bridgetalk,则可以利用 Adob​​e 的跨应用程序通信和 Bridge 可用的 HttpConnection 类(根据 SDK 文档),并拥有 InDesign调用 Bridge 发出 HTTP 请求并将结果传回 In​​Design。

我没有 InDesign 的具体示例,但这里有一些适用于 Illustrator。我认为它可以轻松移植到 InDesign。

https://gist.github.com/daluu/2d9dec72d0863f9ff5a7

https://gist.github.com/mericson/6509997

在外部进行 Web 服务调用并与 ExtendScript 接口

Adobe 的脚本 API 引擎并非严格意义上的 ExtendScript/Javascript。您还可以使用来自 COM/VBScript(在 Windows 上)或 Applescript(在 Mac 上)的脚本 API,它们在 InDesign 外部执行,但通过 API 与 InDesign 交互。

对于 Windows,COM 是指任何支持 COM 的语言,因此它不仅仅是默认的 VBScript(可以是 Python、Perl、PHP、Java、.NET,甚至是 Microsoft JScript——它们用于命令行/桌面/等的 Javascript 版本.)。

在不同引擎上使用脚本 API,您可以从其他语言(VBScript、Applescript 等)外部调用 Web 服务,然后通过application.doScript( 'ExtendScript code snippet here')(或 doJavascript),其中 ExtendScript 片段可以是一个简短的片段,它使用 ExtendScript 包含包含实际的 JSX 文件,然后调用 ExtendScript 函数/方法,将 Web 服务结果作为参数传递给它。

在一些解决方案中描述了这种技术的一个示例(不包括 Web 服务调用部分):

是否可以从 ExtendScript 外部执行 JSX 脚本?

于 2015-04-24T22:09:49.963 回答
1

您还可以根据操作系统调用 AppleScript 或 VB,并使用一些命令行实用程序(如 cUrl)来调用您的 Web 服务。您也可以尝试 getUrl,这是一个来自 Rorohiko 的免费脚本,可简化 ExtendScript 中的 Web 通信。

于 2015-04-27T09:17:16.460 回答
0

...可能如果您使用 InDesign 从文档中创建 pdf。在pdf中你可能可以。但从原始的 InDesign 文档可能不会。我还投票认为您将无法在文档打开之前从文档中运行 js。我建议您咨询 InDesign 专家。不过我很好奇你会想出什么,因为我记得 ID 确实允许你在文档中包含交互性。如果您在其他地方找到答案,请回帖。

于 2011-09-27T19:33:03.137 回答