2012-06-27 62 views
0

通常,當您在編寫自動化Adobe產品(如InDesign,Illustrator或Photoshop)的.jsx腳本時,您可以編寫,調試並執行腳本ExtendScript IDE。是否可以繞過ExtendScript並從第三個程序運行腳本?我想要從html文件或js腳本執行jsx腳本

我已經寫了腳本來自動化一些後效果的工作。我一直在從ExtendScript IDE運行腳本,但現在我希望用戶從html表單提供輸入參數,然後當他單擊提交按鈕時,我想將用戶輸入傳遞給jsx腳本,然後自動運行該腳本。

所以基本上我想從調用JSX代碼的html或寫在HTML文件中的JavaScript代碼

回答

0

這是棘手的,但如果你不認爲HTML頁面將運行腳本,但它可能會實現,而如果腳本正在尋找一些設置來顯示感謝html頁面。

如果你在Mac上,你可以編寫一個applescript來監視一個文件夾,並在需要時運行jsx文件。

如果您可以承受InDesign凍結,請考慮使用$ .sleep()來定期檢查文件夾。另一種方法是依賴AS3,以便在HTML端沒有任何事情發生時使InDesign可用。

最後但並非最不重要的是,這些都是灰色區域,因爲腳本必須由用戶在桌面版本的Adobe軟件中執行。你試圖實現的更多的是關於服務器腳本處理。根據您的預算,您可以查看InDesign服務器解決方案。儘管沒有針對Ai & Ps的服務器解決方案。

希望它能幫助,

盧瓦克

+0

OP從未提及具體細節,但他/她可能會考慮託管和執行客戶端的HTML表單,而不是駐留和執行服務器端。例如基本上使用客戶端HTML和JS爲腳本構建簡單的GUI。希望情況是這樣,OP更容易實施。 – David

0

是的,這是可行的,但努力量取決於您的平臺。正如Loic提到的,如果您的目標是讓遠程用戶打開服務器上的網頁來執行此操作,那麼我所呈現的就是客戶端解決方案,但這並不奏效。你最好建立一個完成所有這些工作的Web服務,然後用HTML表單調用Web服務。

對於HTML表單的情況下,您需要在Windows上執行JSX代碼,從表單中使用封裝在腳本標記中的VBScript或JavaScript(通過Microsoft JScript)代碼提供所需的參數/參數HTML文件。 VB/JS代碼可以在腳本標記內,也可以通過腳本標記從外部VBS/JS文件中提取。使用這個解決方案,你的HTML文件必須用擴展名「.hta」而不是「.htm」或「.html」命名。你可能想添加一些額外的HTA元素標籤到文件中。

有關詳細信息,請參閱本:http://en.wikipedia.org/wiki/HTML_Application

HTA的好處是,對本地文件系統中的瀏覽器的安全限制不像傳統的HTML頁面中移除,讓您得到喜歡的是可以使用VBScript(而不只是附加的訪問JavaScript的HTML頁面)並使用COM對象。這裏的技巧是我們將使用Adobe應用程序的COM API來執行JSX文件。

如果在Mac上,我相信你沒有類似的等價物。因此,您的另一種選擇是構建類似於HTML表單的GUI,但實際上是Mac的桌面應用程序(例如wxWidgets,Qt,原生Mac應用程序,Java GUI應用程序)。通過構建該GUI,可以通過Applescript執行JSX,因爲許多語言(Java,Python等)都應該有一個Applescript橋接接口。最糟糕的情況是,你可以通過shell執行一個Applescript,將Applescript傳遞給實際的JSX腳本文件的參數傳遞給它。

至於如何傳遞參數給JSX文件並執行它ExtendScript IDE之外,看到這個SO帖子:

Is it possible to execute JSX scripts from outside ExtendScript?

我剛纔提到的關於HTML形式或GUI應用程序的簡單接口是到SO後解決方案。