2011-09-27 198 views
11

我是一家印刷公司的內部開發人員。是否可以使用Indesign javascript調用Web服務?

我們使用Adobe Indesign CS3和CS5創建打印文檔。

我創建在Adobe Extendscript一個腳本,創建了一個InDesign文檔,當客戶沒有這樣做,自己處理一些基本的轉換。

我用Javascript來寫這個腳本。

是否可以通過這樣的腳本調用Web服務?

如果是這樣,怎麼樣?

如果不是,從桌面調用Web服務的最佳方式是什麼?

謝謝。

+1

請留下建設性的批評,如何這簡直是downvoting之前不好的問題。我在這裏比較新,只是尋求幫助,試圖儘可能清楚地問我的問題。 – story

+0

...你是在談論從桌面出版文檔調用ws嗎? – vector

+0

本質上,是的。我需要從Adobe Indesign CS3 - CS5中調用ws,但該計劃在調用腳本時不需要打開文檔。 – story

回答

4

不,是的。

不,不可以(afaik)讓InDesign從腳本調用Web服務。這是非常可能的,而且通常是通過InDesign插件完成的(您可以執行任意C++代碼,這樣您就可以執行任何操作)。然而,這是一個完全不同的野獸學習。

是的,可以使用庫從ExtendScript中完成。所以基本上你的腳本會調用Web服務來獲取數據(也許使用從InDesign或文檔中獲取的參數),然後將返回的值發送到其他InDesign腳本函數中以執行操作。

的基本樣品可發現here使用「Extendables」。

編輯:既然有顯得有些困惑:這些文件是沒有運行該腳本的人,很少甚至包含它們。腳本以InDesign特定的Javascript格式(.jsx)保存,並由InDesign腳本引擎進行解釋。

+0

我很無語。這個Extendables圖書館非常出色。這正是我需要的。謝謝!如果可以的話,我會多加一次。 – story

+1

Extendibles似乎已成爲豬肉:http://porky.io/ – Ben

+0

@本,謝謝你的豬肉提示。簡單地看代碼庫,我不認爲豬肉是Extendables。他們可能會共享一些通用功能,但它們的結構不同,有時用於不同的目的。豬肉看起來是ExtendScript的一個(網絡)數據庫連接器,還有一些附加功能。 Extendables是ExtendScript的一個測試框架,帶有一些額外功能。 – David

0

...可能如果您使用InDesign創建PDF文檔。在PDF中,你可能可以。但從原始的InDesign文檔可能不是。我還會投票決定,在文檔打開之前,您將無法從文檔中運行js。我建議與InDesign專家合作。我很好奇,不過你會提出什麼,因爲我記得ID確實讓你在文檔中包含了交互性。如果你在其他地方找到你的答案,請回復。

+0

JS?然後是的,你可能可以,不知道你是否可以在文檔中包含整個jQuery庫:-),做一個Ajax調用。 – vector

+0

嗯,我也想知道。這很有趣。 – story

+0

嘗試一下,看看會發生什麼。自我格式化報紙:-) – vector

6

Extendables已經提到:

Extendables

這不是jQuery的,相反,它是對的InDesign腳本庫。

最完整的討論在Rorohiko's blog發現,有漂亮的直線前進的例子。

+0

謝謝,這非常有幫助。精彩的+1。 – story

0

此外Extendables,有2種備選方案:

的Adobe Bridge/Bridgetalk

不能說對的Adobe套件的特定版本,但如果你能使用或擁有的Adobe Bridge/Bridgetalk ,你可以使用Adobe的跨應用通信和HttpConnection的可供大橋類(根據SDK文檔),並有InDesign中調用橋,使HTTP請求,並通過結果反饋給InDesign中。

我沒有InDesign的具體示例,但這裏有一些適用於Illustrator的示例。我會認爲它會輕鬆移植到InDesign。

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

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

使Web服務和外部接口調用ExtendScript

Adob​​e的腳本API引擎不是嚴格ExtendScript/JavaScript的。您也可以使用來自COM/VBScript中(在Windows上)或AppleScript的(在Mac)的腳本API,它執行外部爲InDesign,但通過API使用InDesign的互動。我的意思是任何支持COM的語言,所以它不僅僅是默認的VBScript(可以是Python,Perl,PHP,Java,.NET,甚至是Microsoft JScript--它們的命令行版本的JavaScript)。 /桌面/等)。

在不同的發動機使用腳本API,您從其他語言的Web服務調用外部(VBScript中,AppleScript的,等等),然後通過的腳本API調用(在COM /的AppleScript)將結果傳遞到ExtendScript application.doScript('ExtendScript code snippet here')(或doJavascript)其中ExtendScript片段可以是一個使用ExtendScript的短片段,包括包含實際的JSX文件,然後調用ExtendScript函數/方法,並將其傳遞給Web服務結果作爲論據。

這種技術(不涉及Web服務調用部分)在這裏描述的一些解決方案的例子:

Is it possible to execute JSX scripts from outside ExtendScript?

1

您也可以撥打的AppleScript或VB取決於操作系統,並使用一些像cUrl這樣的命令行實用程序可以調用您的web服務。您也可以試試getUrl,這是Rorohiko的一個免費腳本,它可以簡化ExtendScript中的Web通信。

相關問題