1

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

它工作正常。

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

我使用这个网站作为参考:

https://blogs.adobe.com/indesignsdk/running-a-script-from-an-indesign-plug-in/ _

我需要这样的东西:

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

// 假方法

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

scriptManager 上有类似的东西吗?

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

此致,

4

2 回答 2

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 中。

于 2014-01-29T09:56:37.510 回答
0

使用 RunScriptParams::QueryScriptRequestData() 。

从 SDK 文档:

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

于 2013-12-16T16:26:39.567 回答