Adobe Extendscript ist eine Erweiterung von JavaScript (im folgenden ist immer von JavaScript die Rede), die dazu dient, diverse Adobe Software zu Skripten. Das Adobe Extendscript Toolkit dient dabei als IDE und wird generell zusammen mit Illustrator, InDesign®, etc.. installiert.
Im Gegensatz zu InDesign® ist die Erweiterung von JavaScript in Illustrator durch externe Plugins sehr begrenzt. Es wird lediglich eine einzige Schnittstelle zur Verfügung gestellt:
Application.sendScriptMessage (pluginName: string , messageSelector: string , inputString: string ): string
Diese Funktion ist die Schnittstelle um die priint:comet Illustrator Plugins über Extendscript zu verwenden.
Dabei müssen die Parameter wie folgt aussehen:
Funktionsparameter werden als Stringrepräsetation eines JSON-Objektes übergeben. Dieser String repräsentiert in der Regel eine Liste von Schlüssel/Wert Paaren.
Adobe ExtendScript stellt - obwohl es eine Erweiterung von JavaScript sein soll - keine Standardfunktionalität für JSON zur Verfügung. Wenn Sie die Parameterstrings nicht immer von Hand erzeugen wollen, sollten Sie die Verwendung externer Bibliotheken in Betracht ziehen (z.B. JSON-js oder JSON 3)
Bitte beachten Sie, das Stringparameter die Anführungszeichen oder Backslashes enthalten entsprechend escaped werden müssen (siehe executeCScript Beispiel).
Ausführen eines cScriptes im aktuellen Dokumentkontext
Parameter
Name | Datentyp | Beschreibung |
kScript | String | Das auszuführende cScript als String |
Beispiele
Einfaches aufrufen einer "Hello World" Nachricht als cScript
app.sendScriptMessage('CoreService', 'executeCScript', '{ "kScript" : "int main() { showmessage(\\"Hello World\\"); return 0; }" }');
Selbes Script wie oben, allerdings ist hier das escapen der Anführungszeichen automatisiert
var script = 'int main() { showmessage("Hello World"); return 0; }' script = script.replace(/"/g, '\\"'); var parameter = '{ "kScript" : '; parameter += '"' + script + '"; }'; app.sendScriptMessage('CoreService', 'executeCScript', parameter);