[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Eigenes Plug-in erstellen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Eigenes Plug-in erstellen

tsone
Beiträge gesamt: 65

14. Sep 2023, 14:50
Beitrag # 1 von 13
Bewertung:
(4940 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Leute,

ich habe Photoshop 2024 installiert und meine "klassischen Erweiterungen" sind nun weg. Da dies wohl auch mit der neuen InDesign-Version der Fall sein wird, wollte ich fragen, wie man ein Plug-in für Photoshop und/oder InDesign programmiert.

Also im Prinzip ein Panel mit Buttons, was entsprechende JavaScripte ausführt.

Ich hatte das ursprünglich als HTML Panel erstellt.

Ich habe bereits das hier gefunden https://scriptui.joonas.me, allerdings wird da nur ein JSX generiert.

Danke und Grüße
X

Eigenes Plug-in erstellen

Peter Lenz
Beiträge gesamt: 2749

14. Sep 2023, 18:42
Beitrag # 2 von 13
Beitrag ID: #586785
Bewertung:
(4893 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo tsone,

da hast du beim Installieren von PS CC 2024 wohl die letzte Version deinstallieren lassen.

Wenn InDesign CC 2024 verfügbar ist, achte darauf, dass du die ältere Version nicht deinstallierst. Vor der Installation poppt ein Fenster auf, in dem man das einstellen kann.

In Sachen Script kann ich leider nicht helfen.

Viele Grüße Peter


als Antwort auf: [#586784]

Eigenes Plug-in erstellen

tsone
Beiträge gesamt: 65

15. Sep 2023, 07:42
Beitrag # 3 von 13
Beitrag ID: #586786
Bewertung:
(4840 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Peter,

die 2023er habe ich noch installiert und da sind die Erweiterungen auch drin. Hatte mit Adobe gechattet und die Bestätigung bekommen, dass die alten Sachen rausgeflogen sind.

Ich habe mir Adobe UXP Developer Tool installiert und auch ein Sample Plug-in runtergeladen. Ich kann es aber nur über das Tool in Photoshop temporär aktivieren. Sobald Tool aus ist oder PS neu gestartet, ist das Plug-in weg.

Auch habe ich noch nicht ganz kapiert, wie man eigene JavaSkripte da einbinden kann. Hatte mein Skript in die main.js vom Sample eingefügt, aber scheinbar ist der Code nicht passend.


als Antwort auf: [#586785]

Eigenes Plug-in erstellen

Dirk Becker
Beiträge gesamt: 191

15. Sep 2023, 12:16
Beitrag # 4 von 13
Beitrag ID: #586787
Bewertung:
(4771 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Im Popup Menu zum Projekt innerhalb von UXP DT gibt es unter Load und Debug weiter unten Package. Dabei fällt dann eine .ccx Datei heraus, also ein umbenanntes ZIP.

Doppelklick öffnet die .ccx Datei in der CC.app, nach ein paar Verunsicherungs-Dialogen ist es dann lokal installiert.


als Antwort auf: [#586786]

Eigenes Plug-in erstellen

tsone
Beiträge gesamt: 65

15. Sep 2023, 12:53
Beitrag # 5 von 13
Beitrag ID: #586788
Bewertung:
(4751 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Dirk,

das mit den "Verunsicherungs-Dialogen" ist lustig 😁
Aber hat funktioniert. Besten Dank!

Dann versuche ich mal die JSs eingebunden zu kriegen.


als Antwort auf: [#586787]

Eigenes Plug-in erstellen

Dirk Becker
Beiträge gesamt: 191

15. Sep 2023, 13:24
Beitrag # 6 von 13
Beitrag ID: #586789
Bewertung:
(4730 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Für die Mitleser wird der Vorgang hier beschrieben:

https://developer.adobe.com/photoshop/uxp/2022/guides/distribution/packaging-your-plugin/

Wenn Du von einem Beispiel Projekt startest, sollten sie schon eingebunden sein. Das Manifest zeigt auf das Haupt-HTML, dort im Script-Tag dann der passende Verweis.

Nach jeder Änderung: Debug in dem gleichen Menü, dann die Fehlermeldungen im den Fenster abarbeiten, das gewisse Ähnlichkeiten mit den Chrome Developer Tools hat. Manchmal funktioniert auch Watch, das nach jeder Dateiänderung automatisch Reload auslöst.

Um in die internen Abläufe etwas besser eingebunden zu werden, verwendet man entrypoints sowohl im Manifest als auch im Script.

https://developer.adobe.com/xd/uxp/uxp/reference-js/Modules/uxp/Entry%20Points/EntryPoints/

UXP Menüs wie in dem Beispiel funktionieren nur für Photoshop, dafür hat InDesign seine normalen Script-Menüs, die lassen sich zum Beispiel in plugin.create installieren (und in plugin.destroy wieder abräumen).


als Antwort auf: [#586788]

Eigenes Plug-in erstellen

tsone
Beiträge gesamt: 65

15. Sep 2023, 14:02
Beitrag # 7 von 13
Beitrag ID: #586790
Bewertung:
(4707 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Folgendes Skript läuft, wenn ich es übers Menü (Datei->Skripten->Durchsuchen) aufrufe:

Code
function main(){ 
if(!documents.length) return;
var Name = app.activeDocument.name.replace(/\.[^\.]+$/, '');
var docRef = app.activeDocument;
var activeLay = docRef.activeLayer;
var saveFile = File(Folder.desktop + "/" + Name + "_" + activeLay.name + ".png");
SaveForWeb(saveFile);
}
main();

function SaveForWeb(saveFile) {
var sfwOptions = new ExportOptionsSaveForWeb();
sfwOptions.format = SaveDocumentType.PNG;
sfwOptions.includeProfile = false;
sfwOptions.PNG8 = false;
sfwOptions.transparency = true;
sfwOptions.optimized = true;
sfwOptions.interlaced = false;
sfwOptions.quality = 100; //0-100
activeDocument.exportDocument(saveFile, ExportType.SAVEFORWEB, sfwOptions);
}


Binde ich es aber im Plug-in ein, funktioniert es nicht.

Jemand eine Idee, woran das liegen könnte?


als Antwort auf: [#586789]

Eigenes Plug-in erstellen

Dirk Becker
Beiträge gesamt: 191

15. Sep 2023, 14:20
Beitrag # 8 von 13
Beitrag ID: #586791
Bewertung:
(4678 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das sieht mir eher nach einem ExtendScript aus.
Typische UXP Scripte - kann das nur von InDesign Seite aus beurteilen - müssen sich die Terminologie des Programms erst explizit abholen:

{ app } = require("indesign");

Oder entsprechend für Photoshop. Ebenso andere Symbole wie ExportOptionsSaveForWeb, SaveDocumentType.

Wie weit man PS ExtendScript 1:1 übertragen kann weiss ich nicht, die zur Verfügung gestellten Funktionen sollen massiv überarbeitet worden sein.

Der Zeitpunkt des Scriptlaufs - der das frei herumstehende main() ausführt - ist der Programmstart oder die Installation des "Plugins". Wenn es statt dessen auf Knopfdruck starten soll, muss wie oben geschrieben ein entrypoint angelegt werden, etwa ein "command". Solche Commands erscheinen dann in der Plugins Palette. Sonst eben ein Menü, oder HTML basiertes UI.

Also, im Beispiel von der Adobe-Seite würde dann unterhalb von "command1" eine Zeile
Code
run: main 

stehen. - main ohne die folgenden Klammern, es soll ja die Funktion installiert werden, nicht deren Ergebnis.


als Antwort auf: [#586790]

Eigenes Plug-in erstellen

Uwe Laubender
Beiträge gesamt: 5298

18. Sep 2023, 19:50
Beitrag # 9 von 13
Beitrag ID: #586809
Bewertung:
(4390 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo tsone,
mir ist schleierhaft, weshalb das Skript überhaupt in InDesign laufen sollte.

Das ExportOptionsSaveForWeb ist eindeutig ein PhotoShop-Objekt und nicht im InDesign DOM vorhanden. Siehe PhotoShop DOM:

https://www.indesignjs.de/...tionsSaveForWeb.html


als Antwort auf: [#586790]

Eigenes Plug-in erstellen

tsone
Beiträge gesamt: 65

19. Sep 2023, 07:20
Beitrag # 10 von 13
Beitrag ID: #586812
Bewertung:
(4350 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

das Skript war nur beispielhaft, weil es mich erst bei Photoshop betroffen hat. Es wird mich aber bei Indesign auch tangieren und da noch stärker, nur ist die 2024er Version ja noch nicht released.

Mir ging es allgemein um die Erstellen von "neuen" Plug-ins. Ich habe ja bis jetzt immer mit Extended Scripts und HTML Panels gearbeitet.


als Antwort auf: [#586809]

Eigenes Plug-in erstellen

tsone
Beiträge gesamt: 65

19. Sep 2023, 10:27
Beitrag # 11 von 13
Beitrag ID: #586814
Bewertung:
(4297 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich folgende Seite bei Adobe gefunden:
https://developer.adobe.com/...pts/getting-started/

Was mir da irgendwie fehlt, ist eine Übersicht mit allen Funktionen, die ich über ein Script steuern kann. Also praktisch eine komplette Liste mit allen Parametern, die geskriptet werden können und im besten Fall mit Beispielen.


als Antwort auf: [#586812]

Eigenes Plug-in erstellen

Uwe Laubender
Beiträge gesamt: 5298

19. Sep 2023, 12:43
Beitrag # 12 von 13
Beitrag ID: #586816
Bewertung:
(4227 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat von tsone ... das Skript war nur beispielhaft, weil es mich erst bei Photoshop betroffen hat. Es wird mich aber bei Indesign auch tangieren und da noch stärker, nur ist die 2024er Version ja noch nicht released.


Ich würde in keinem Fall beim Skripten von PhotoShop auf InDesign schließen wollen. Das gilt auch umgekehrt! Egal mit welcher Skriptsprache. Das zeigt mir jedenfalls meine bisherige Erfahrung mit beiden Programmen.


als Antwort auf: [#586812]

Eigenes Plug-in erstellen

Dirk Becker
Beiträge gesamt: 191

20. Sep 2023, 18:38
Beitrag # 13 von 13
Beitrag ID: #586820
Bewertung:
(4063 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Ich würde in keinem Fall beim Skripten von PhotoShop auf InDesign schließen wollen


Ausnahmen bestätigen die Regel.

Bei UXP hat Photoshop deutlich früher angefangen und ist noch immer der Vorreiter, ein großer Teil der Dokumentation findet sich nur dort, ist aber übertragbar. Wenn man nachfragt, kommt der direkte Link. Ich habe schon viel zu dem "modernisierten" Rechtemodell gelernt wo UXP ähnlich rumzickt wie ein Webbrowser mit CORS Befindlichkeiten, Dateisystem Sandkästen und was man sonst nur so von HTML kennt.

Wo es nicht passt, muss InDesign noch nachziehen. Etwa sogenannte Hybrid-Plugins - sowas wie ExternalObject von ExtendScript (C++ Plug-Ins gehen weiter), oder die UXP basierten Menüs (dafür haben wir ScriptMenüs), oder XMP (die ExternalObject Variante, der InDesign interne Ansatz sollte weiter funktionieren). Andere Bereiche funktionieren bereits, und scheitern dann wenn der CC.app Installer mitreden will. Vielleicht habe ich auch nur eine veraltete Version von gestern? Das soll keine Kritik sein, ich begrüße, wie viel sich gerade tut.

Für das eigentliche Scripting-Objectmodell passt natürlich Deine Aussage, wo es bei Photoshop viele Verbesserungen geben soll (verfolge das nur am Rand), während bei InDesign eher die Details ausgebügelt oder dokumentiert werden.


als Antwort auf: [#586816]
X