Получить возвращенный текст из ScriptManager (javascript) — INDESIGN SDK Plugin

Я использую JavaScript внутри моего плагина для Indesign CS6.

Работает нормально.

Но мне нужно возвращаемое значение из моего кода JavaScript сейчас внутри моего кода C ++.

Я использую этот сайт в качестве ссылки:

https://blogs.adobe.com/indesignsdk/running-a-script-from-an-indesign- плагин /

Мне нужно что-то подобное:

scriptRunner-> RunScript («function xpto () {return ‘Hello World’;}; xpto ()», params);

// поддельный метод

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

Есть ли что-то подобное на scriptManager?

PS: это не сервер indesign. Я поместил этот тег, потому что этот сайт не позволяет мне создавать новый тег …

С уважением,

1

Решение

Используйте RunScriptParams :: QueryScriptRequestData ().

Из документов SDK:

Запросите IScriptRequestData, который используется для передачи аргументов и возврата
результат.

0

Другие решения

Ключ заключается в получении объекта iScript из объекта RunScriptParams после запуска сценария. Тогда это прямо вперед. Вот пример кода:

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.

0

По вопросам рекламы [email protected]