2

CORBA を使用して InDesign サーバーと通信する単純な Java (1.5) ベースの Web アプリ (Tomcat-6 サーバーにデプロイ) を作成しました。

ジョブ オプション (ファイル システム内の別のファイルに格納されている) を追加できた後、InDesign クライアントで既に正常に動作する Javascript ファイルについても同じことを行いたいと考えています。残念ながら、ジョブ オプションの場合と同様に、スクリプトを CORBA アプリケーションに「フック」する方法を特定できませんでした。

残念ながら、公式ドキュメントにはこれを行う方法が記載されていません。誰でも助けを提供できますか?

4

1 に答える 1

1

大量のドキュメント (存在しない ;)) javadocs と公式および非公式の Adob​​e フォーラムを掘り下げた後、私は自分で解決策を見つけました。

CORBA アプリケーションは、doScript(arg0, arg1, arg2, arg3, arg4)実際にスクリプトを実行するドキュメント化されていないメソッドを所有しています。次のようなコード スニペットは、javascript を実行します (他のスクリプトも問題なく実行できます)。

String scriptPath = "/path/to/my/javascripts/"; // indesign server needs file access to this folder
VariableType file = VariableTypeUtils.createFile(scriptPath);

// ScriptLanguage.UNKNOWN - 1433299822
// ScriptLanguage.APPLESCRIPT_LANGUAGE - 1095978087
// ScriptLanguage.JAVASCRIPT - 1246973031

// do javascript
OptScriptLanguageEnum scriptType = OptArg.makeScriptLanguageEnum(1246973031);

// add values ...
VariableType[] params = new VariableType[1];
params[0] = VariableTypeUtils.createBoolean(true);
OptVariableTypeSeq args = OptArg.makeVariableTypeSeq(params);

// or if you got no args
args = OptArg.noVariableTypeSeq();

// undo modes
OptUndoModesEnum undoModes = OptArg.noUndoModesEnum();
// string to undo mode
OptString undoName = OptArg.noString();

// add to application
VariableType vt = gApp.doScript(file, scriptType, args, undoModes, undoName);

誰でもこれを確認できることを願っています。:)

于 2012-07-26T13:06:23.337 に答える