indd ファイルのすべてのフォーム フィールドを取得するために、このスクリプトを実行しています。
var _ALL_FIELDS = "";
var allFields = myDocument.formFields;
for(var i=0;i<allFields.length;i++){
var tf = allFields[i];
alert(tf.id);
alert(tf.label);
alert(tf.name);
alert(_ALL_FIELDS = _ALL_FIELDS +\",\"+ tf.name);
}
私がやったことは、soap-java ベースのクライアントを作成し、runscript メソッドを呼び出すことです。今、私はこれらのフィールドを取得することができますが、これらのフィールドをクライアントに送り返す方法、つまり応答でこれを書き込む方法と、クライアント側で応答から読み取る方法です。
runscript メソッドを呼び出すコードは次のとおりです。
Service inDesignService = new ServiceLocator();
ServicePortType inDesignServer = inDesignService.getService(new URL(parsedArgs.getHost()));
IntHolder errorNumber = new IntHolder(0);
StringHolder errorString = new StringHolder();
DataHolder results = new DataHolder();
inDesignServer.runScript(runScriptParams, errorNumber, errorString, results);
また、ドキュメントでrunScriptメソッドが返すことを発見しましたRunScriptResponse
が、私の場合はvoidを返しています。
http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/indesign/sdk/cs6/server/ids-solutions.pdf