Zum Inhalt springen

Javascript auch in Adobe Bridge 2022 ausführen

Von Null auf ... Javascript in Illustrator – eine kurze, einfache Einführung, Teil 07, ein Javascript automatisch mit Javascript verändern, damit es in Adobe Bridge ausgeführt wird.

(Info:) (Update:) Im siebten Artikel »Javascript auch in Adobe Bridge 2022 ausführen« erfahren Sie in einem Tutorial Von Null auf …, wie Sie ein Javascript für Adobe Illustrator, Photoshop, InDesign, InCopy auch in Adobe Bridge ausführen können, ohne das Sie fast identisches Javascript erstellen müssen, was die Pflege bei späteren Anpassungen erschwert und verlangsamt. Dieser Artikel funktioniert auch mit älteren Versionen von (BR:).

(Hilfe:) Sie wollen oder können nicht selbst programmieren? Sie brauchen kurzfristig ein Javascript für eine Automatisierung für ein aktuelles Problem in Illustrator oder einem anderen Adobe Programm? Dann helfe ich Ihnen gerne als JavaScript-Entwickler mit meiner jahrzehntelang Programiererfahrung.
Schreiben Sie mir einfach und unverbindlich per Kontaktformular.

Inhaltsverzeichnis

Adobe ExtendScript

Das Scripting (Programmierung) in Adobe Illustrator basiert auf Adobe ExtendScript, eine Abart von ECMAScript 3, kurz ES3, und ist somit ein Dialekt von Javascript. Die Dateiendung eines Adobe ExtendScript ist ».jsx«. Trotzdem spricht man auch bei den Adobe Programmen von Javascripts. Javascripts haben übrigens die Endung ».js«.

Das Problem mit Adobe Bridge 2022

Ich habe zwei Javascripts geschrieben, die in (AI:), (PS:), (ID:) und (IC:) laufen.
(Hilfe:) Probleme beim Download?

Das Problem: Damit diese auch in Adobe Bridge laufen muss dort zwingend eine Zeile #target bridge eingefügt sein. Sonst lässt Adobe Bridge diese Javascripts nicht ablaufen. Was macht man also? Man kopiert das Javascript und fügt die verlangte Zeile ein.

Der Nachteil, wenn Sie zwei fast identische Javascripts pflegen oder erweitern

Doppelte Skripte sind immer ein Albtraum für den Programmierer, wenn es um das Pflegen oder Erweitern geht. Daher habe ich nach einer anderen Möglichkeit gesucht, die das Verdoppeln des Javascripts umgeht.

Eine Datei, die in allen fünf Adobe Apps läuft, kann es nicht geben, da der Befehl #target bridge von InDesign und InCopy wörtlich genommen wird und diese Apps starten dann Adobe Bridge, um das Javascript dort auszuführen.

Es bleibt als nur eine Lösung mit zwei Dateien. Wobei die erste Datei für Adobe Brigde die zweite Datei nachlädt und dann in Adobe Bridge ausführt. Mit dem Befehl #include gefolgt vom Dateinamen wäre das leicht machbar. Doch wehe das gewünschte Javascript fehlt oder liegt am falschen Platz. Dann sieht der Anwender eine unschöne Programmfehlermeldung und denkt, der Programmierer hat nicht richtig gearbeitet.

Die Lösung mit dem Javascript »BridgeLauncher.jsx«

Doch es gibt eine Lösung mit zwei Dateien, die prüfen kann, ob das nötige Javascript im gleichen Ordner liegt. Entweder startet Adobe Bridge das nötige Javascript oder zeigt dem Anwender eine korrekte Fehlermeldung. Das erste Javascript, das für Adobe Bridge ist, nenne ich »BridgeLauncher.jsx«.
Das zweite Javascript, in dem der eigentliche Code steht und das in allen fünf Adobe Apps ausgeführt werden soll, habe ich hier »mainScript.jsx« genannt.

Wie funktioniert das Javascript »BridgeLauncher.jsx«?

Voraussetzung, damit es klappt, müssen die beiden Javascripts im gleichen Ordner liegen. Dabei ist es egal, ob es der Schreibtisch oder irgend ein Unterordner ist.

In Zeile 19 var vLaunchFile = "mainScript.jsx"; können Sie den Namen des Javascript eintragen, der auch von Adobe Bridge ausgeführt werden soll.

In Zeile 27 if (vLaunch.exists) { … } prüft »BridgeLauncher.jsx«, ob die angegebene Datei auch wirklich im gleichen Ordner liegt.

In folgenden Zeilen wird das Javascript eingelesen, der Befehl #target bridge vor den Quellcode gesetzt, und das Ergebnis als temporäres Javascript in den gleichen Ordner geschrieben.

In Zeile 37 $.evalFile(vPath2); wird das temporäre Javascript in Adobe Bridge ausgeführt und danach wieder gelöscht.

Download des Javascripts »BridgeLauncher.jsx«

Noch einfacher mit einem verschlüsselten Javascript (1)

Noch einfacher geht es mit einem verschlüsselten Javascript. Im Artikel »Javascript für Adobe Illustrator 2022 verschlüsseln« lesen Sie, wie Sie ein Javascript verschlüsseln können. Mit meinem Javascript »placeJSXBINintoJSX.jsx«, können Sie das verschlüsselten Javascript in ein reguläres Javascript verwandeln und neben Kommentarzeilen auch Befehl #target bridge vor den Quellcode schreiben, damit es in Adobe Bridge abläuft. Das sieht dann aus so:

// Made with placeJSXBINintoJSX. You can replace and add to this comment line.
#target bridge

var fCode = new Function ("@JSXBIN@ES@2.0@MyBbyBn0ABJCnAEjzFjBjMjFjSjUBfRBFeLiIjBjMjMjPhAiXjFjMjUhBff0DzACByB")
fCode.apply(null);
// end of javascript

Noch einfacher mit einem verschlüsselten Javascript (2)

(Update:) Wenn Sie eine unveränderte, verschlüsselte ».jsxbin« (Binärdatei) in Adobe Bridge starten und ist im Quellcode der Befehl #target bridge nicht enthalten, so läuft das Javascript trotzdem.

Fazit

Mit dem oben gezeigten Trick (Javascript »BridgeLauncher.jsx) ist es nicht nötig ein Javascript in zwei Versionen für Adobe Bridge und die anderen fünf Adobe Apps ((AI:), (PS:), (ID:), (IC:)) und (FM:) zu programmieren. Das erleichtert dem Programmierer die Arbeit und hilft, Fehler zu vermeiden.

ENDE

(Hilfe:) Wenn Sie eine Funktion in (AI:), (PS:), (IC:), (ID:) oder (FM:) benötigen, jedoch nicht selbst programmieren, dann sprechen Sie mich an. Ich übernehme gerne kleine Aufträge: zum Kontaktformular.