从ScriptManager(javascript)获取返回的文本 - INDESIGN SDK插件

时间:2013-12-15 23:18:51

标签: c++ adobe-indesign indesign-server

我在Indesign CS6的插件中使用了javascript。

工作正常。

但是我现在需要我的javascript代码中的返回值。

我使用此网站作为参考:

https://blogs.adobe.com/indesignsdk/running-a-script-from-an-indesign-插件/

我需要这样的东西:

scriptRunner-> RunScript(" function xpto(){return' Hello World&#39 ;;}; xpto()",params);

//假方法

const char * string_return = scriptRunner-> getReturnCode();

在scriptManager上有类似的内容吗?

ps:它不是一个indesign服务器。我把这个标签,因为这个网站不允许我创建一个新的标签...

最诚挚的问候,

2 个答案:

答案 0 :(得分:0)

使用RunScriptParams :: QueryScriptRequestData()。

从SDK文档:

  

查询用于传递参数并返回的IScriptRequestData   结果。

答案 1 :(得分:0)

关键是在脚本运行后从'RunScriptParams'对象中获取iScript对象。那么它是直截了当的。以下是一些示例代码:

RunScriptParams params(scriptRunner);
IScriptRequestData* requestData = params.QueryScriptRequestData();
params.SetUndoMode(RunScriptParams::kFastUndoEntireScript);

if (scriptRunner->RunScript(script,params) != kSuccess) return NULL;

IScript *iScript = params.QueryTarget();
int resultsCount = requestData->GetNumReturnData(iScript);
PMString resultString;
if (resultsCount > 0) {
    ScriptReturnData resultOne = requestData->GetNthReturnData(iScript,0);
    ScriptData scriptReturnOne = resultOne.GetReturnValue();


    scriptReturnOne.GetPMString(resultString);
}

返回值在resultString中。