Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Umstieg von Indesign Workstation auf InDesign Server

Umstieg von Indesign Workstation auf InDesign Server

Harald Zwer
Beiträge gesamt: 306

31. Jul 2013, 16:06
Bewertung:

gelesen: 4492

Beitrag als Lesezeichen
Hallo,

ich habe eine alte Anwendung in VB6 welche automatisiert Katalogseiten generiert.
Meine Anwendung arbeitet mit der InDesign Type Library (Visual Basic.tlb).

Um die Katalogseiten zu generieren brauche ich auf jedem Arbeitsplatz InDesign.
Deshalb möchte ich auf InDesign Server umsteigen.

Jetzt zu meiner Frage:
Funktioniert mein Code weiterhin mit InDesign Server?

Also zum Beispiel:
Set myInDesign = CreateObject("InDesign.Application.CS3")
Set myFont = myInDesign.Fonts.Item("Arial")
Set myDocument = myInDesign.ActiveDocument
Set myPage = myDocument.Pages.Item(1)

Sorry, für die vielleicht blöde Frage.
Aber ich will halt sicher gehen, dass es funktioniert.

Muss ich sonst noch etwas beachten?
Danke für Eure Hilfe.

Herzliche Grüße

Harald

Umstieg von Indesign Workstation auf InDesign Server

Uwe Laubender
Beiträge gesamt: 5316

31. Jul 2013, 16:52
Bewertung:

gelesen: 4467

Beitrag als Lesezeichen
Zitat von Harald Muss ich sonst noch etwas beachten?


Hallo, Harald!
Viel kann ich nicht zu InDesign Server sagen. Aber vielleicht das hier:
Alle Scriptaufrufe, die mit dem UI zu tun haben, werden nicht funktionieren, da Server kein "normales" UI besitzt. Bei VB6 bin ich mir nicht sicher, da ich mit ExtendScript arbeite (und das noch ohne Server).

Also z.B. in ExtendScript: "app.pasteInto()"… wird wahrscheinlich nicht funktionieren.

Und: keine Ahnung, ob die Server-Variante von InDesign CS3 noch überhaupt bei Adobe erhältlich ist…
*****
Mit herzlichem Gruß,
Uwe Laubender

Umstieg von Indesign Workstation auf InDesign Server

WernerPerplies
Beiträge gesamt: 2762

1. Aug 2013, 07:34
Bewertung:

gelesen: 4409

Beitrag als Lesezeichen
Hallo Harald,

Zitat Um die Katalogseiten zu generieren brauche ich auf jedem Arbeitsplatz InDesign.
Deshalb möchte ich auf InDesign Server umsteigen.


Vielleicht könntest Du die Logik Deiner Anwendung so ändern, dass die Arbeitsplatzinstallation nicht nötig ist?

Zitat Jetzt zu meiner Frage:
Funktioniert mein Code weiterhin mit InDesign Server?


Ich habe noch nicht wirklich viel Erfahrung mit dem Indesign Server, aber ich bin dennoch sicher, dass Dein Code nicht ohne größere Anpassungen funktionieren wird.

Du must dem Server mit einem bestimmten Protokoll oder einer strukturierten Datei einen Auftrag schicken, Dein Serverskript arbeitet dann die Aufgabe ab und schickt das Ergebnis zurück.

Ist eigentlich ganz einfach, aber ob es die lokale Installation von InDesign überflüssig macht, wage ich zu bezweifeln.

Generell würde sich solch eine Arbeitsweise auch mit jeder InDesign-Workstion-Version realisieren lassen, aber solche Lösungen verbieten die Adobe Lizenzbestimmungen.

Ein weiterer Unterschied zwischen Workstation-Version und Server besteht wohl darin, dass der Server in mehreren Instanzen auf einem System laufen kann. Ich weiß allerdings nicht, ob das die Lizenzbestiummungen erlauben.

Meine Empfehlung:
Lade die Testversion herunter, schaue die Beispiele und die Dokus an, und erstelle einige Testskripts.

Mein Bauchgefühl sagt mir, dass Dir die Serverversion vermutlich keine Vorteile bringt.

Ach ja, Uwe schrieb ja schon, das keine GUI-Ausgaben möglich sind, also auch keine Alerts.

Dies bedingt eine sorgfältige Fehlerbehandlung, Protokollierung und Ergebnisrückgabe, auftretende Fehler müssen auf dem Client zusätzlich berücksichtigt werden und ggf. , wenn möglich, durch Wiederholungsaufträge korrigiert werden.

Einen schönen Tag wünscht

Werner Perplies
Praxisnahe Skript-Lösungen und Skript-Programmierung für Adobe InDesign
Aktuelles (Stand: 14.02.2024)
Kundenstimmen

Umstieg von Indesign Workstation auf InDesign Server

Harald Zwer
Beiträge gesamt: 306

1. Aug 2013, 10:09
Bewertung:

gelesen: 4376

Beitrag als Lesezeichen
Antwort auf [ WernerPerplies ] Du must dem Server mit einem bestimmten Protokoll oder einer strukturierten Datei einen Auftrag schicken, Dein Serverskript arbeitet dann die Aufgabe ab und schickt das Ergebnis zurück.


Es gibt keine GUI und ich muss mir deshalb ein Fehlerprotokoll erstellen ggf. in Event-Log schreiben. Das ist klar.

Aber was meinst Du mit "Auftrag schicken"?

Theoretisch muss ich doch nur eine Zeile ändern in meinem Code:
Set myInDesign = CreateObject("InDesignServer.Application")

OK, im Detail sind sicher einige Anpassungen notwendig.
Aber grundsätzlich spreche ich den Server so an, oder?

Herzliche Grüße

Harald

Umstieg von Indesign Workstation auf InDesign Server

WernerPerplies
Beiträge gesamt: 2762

1. Aug 2013, 10:29
Bewertung:

gelesen: 4367

Beitrag als Lesezeichen
Harald,
Zitat Theoretisch muss ich doch nur eine Zeile ändern in meinem Code: Set myInDesign = CreateObject("InDesignServer.Application")

So wie ich das bei meinen Versuchen gesehen habe, funktioniert das weder theoretisch noch praktisch so.

Schau in die Beispiele und in die Doku.

Funktioniert m Prinzip wie bei den meisten Clent-Server-Installationen, schau mal nach SOAP, RPC und Co.

Einen schönen Tag wünscht

Werner Perplies
Praxisnahe Skript-Lösungen und Skript-Programmierung für Adobe InDesign
Aktuelles (Stand: 14.02.2024)
Kundenstimmen

Umstieg von Indesign Workstation auf InDesign Server

Harald Zwer
Beiträge gesamt: 306

1. Aug 2013, 10:44
Bewertung:

gelesen: 4361

Beitrag als Lesezeichen
Hallo,

ich habe mir die Doku angesehen. Es gibt mehrere Möglichkeiten für die Integration von InDesign Server: SOAP, Java, COM.

InDesign Server veröffentlicht also eine COM-Typenbibliothek, mit der COM-Komponenten mit Schnittstelle zu InDesign Server entwickelt werden können.

Set myApp = CreateObject("InDesignServer.Application")
REM Um einen Verweis auf eine bestimmte Instanz von InDesign Server zu erstellen
Set myApp = GetObject("configuration_12345")

Es sollte theoretisch also mit COM funktionieren.
Hat das schon jemand gemacht?

Herzliche Grüße

Harald

Umstieg von Indesign Workstation auf InDesign Server

WernerPerplies
Beiträge gesamt: 2762

1. Aug 2013, 10:56
Bewertung:

gelesen: 4352

Beitrag als Lesezeichen
Da muss ich passen.
Aber ich bin auf das Ergebnis sehr gespannt, erzeugt
Code
Set myApp = CreateObject("InDesignServer.Application") 
REM Um einen Verweis auf eine bestimmte Instanz von InDesign Server zu erstellen
Set myApp = GetObject("configuration_12345")

nicht nur eine Verbindung zu einer lokalen (nicht Netzwerk) Instanz des Servers?

Einen schönen Tag wünscht

Werner Perplies
Praxisnahe Skript-Lösungen und Skript-Programmierung für Adobe InDesign
Aktuelles (Stand: 14.02.2024)
Kundenstimmen

(Dieser Beitrag wurde von WernerPerplies am 1. Aug 2013, 11:03 geändert)

Umstieg von Indesign Workstation auf InDesign Server

mx
Beiträge gesamt: 161

1. Aug 2013, 14:29
Bewertung:

gelesen: 4287

Beitrag als Lesezeichen
Hallo Harald,

zu COM kann ich dir nicht weiter helfen, aber zumindest für SOAP gibt es im SDK für InDesign-Server bereits eine fertige kleine Beispielanwendung (sampleclient.exe), die nichts anderes macht, als ein Skript auszuführen. (Die SOAP-Anbindung kann auch außer "runScript" nicht viel mehr...)

Damit müsstest Du schon hinkommen, indem das Skript dann über Parameter die zu verarbeitenden Datei-Pfade etc. übegeben bekommt, oder es läuft sowieso auf ein festes Verzeichnis los.

Viele Grüße
Jo

Umstieg von Indesign Workstation auf InDesign Server

Rene Treuber
Beiträge gesamt: 23

1. Aug 2013, 15:48
Bewertung:

gelesen: 4256

Beitrag als Lesezeichen
Hallo,

kenne mich mit der VB-Skriptvariante jetzt nicht so aus, aber das:

Antwort auf [ Harald Zwer ] Set myDocument = myInDesign.ActiveDocument


wird wahrscheinlich nicht funktionieren. Zumindest bei der JavaScript/ExtendScript-Variante gibt es im InDesign Server kein "active document". Ich benutze daher immer "app.documents.item(0)". Das schien bisher immer das Gegenstück zu "app.activeDocument" zu sein (funktioniert auch in InDesign "Desktop").

Gruß,
René

--
René Treuber
axaio software GmbH
https://www.axaio.com

Umstieg von Indesign Workstation auf InDesign Server

Harald Zwer
Beiträge gesamt: 306

1. Aug 2013, 16:08
Bewertung:

gelesen: 4243

Beitrag als Lesezeichen
Antwort auf [ WernerPerplies ] ...nicht nur eine Verbindung zu einer lokalen (nicht Netzwerk) Instanz des Servers?

InDesign Server besitzt eine Visual Basic.tlb, welche ich in mein Projekt einbinde. Dann sollte es (hoffentlich) funktionieren.


Antwort auf [ mx ] ...die nichts anderes macht, als ein Skript auszuführen.

Ja, über SOAP kann ich JavaScript und VBScript ausführen. Aber das möchte ich gerade nicht. Da ich eine VB6 COM Anwendung habe und eine Datenbank, wollte ich diese auch weiter verwenden.


Antwort auf [ Rene Treuber ] Ich benutze daher immer "app.documents.item(0)".

Danke für den Tipp. Ich hoffe das Objektmodell ist beim InDesign Server gleich. Ich arbeite viel mit Mustervorlagen, generierten Tabellen und GREP Ausdrücken.

Hat jemand da Erfahrung?

Umstieg von Indesign Workstation auf InDesign Server

WernerPerplies
Beiträge gesamt: 2762

1. Aug 2013, 17:01
Bewertung:

gelesen: 4222

Beitrag als Lesezeichen
Hallo Harald,

Zitat InDesign Server besitzt eine Visual Basic.tlb, welche ich in mein Projekt einbinde.


Das weiß ich doch. Und Du kannst ganz sicher über diese Schnittstelle mit einer VLB-Anwendung, die auf dem Server läuft, mit dem InDesign-Server kommunizieren.

Wovon ich die ganze Zeit schreibe, betrifft die Kommunikation zwischen Workstation und Server.

Lass mich bitte an Deinem Ergebnis teilhaben.

Im SDK gibt es übrigens, ich glaube, ich wiederhole mich, Beispiele, auch für VB.

Einen schönen Tag wünscht

Werner Perplies
Praxisnahe Skript-Lösungen und Skript-Programmierung für Adobe InDesign
Aktuelles (Stand: 14.02.2024)
Kundenstimmen

Umstieg von Indesign Workstation auf InDesign Server

Dirk Becker
Beiträge gesamt: 193

1. Aug 2013, 19:00
Bewertung:

gelesen: 4185

Beitrag als Lesezeichen
Soweit vorhanden, sind die Befehle zwischen InDesign Server und InDesign Desktop *fast* gleich.

Neben dem offensichtlichen ScriptUI fehlt das Konzept der Selektion (app.selection sowie alles was mit .active beginnt), auch die UI-bezogenen Parameter von open/save usw, sowie von ScriptPreferences. Ansonsten gibt es beim CS4 Server noch eine Abweichung bei irgend einem Text-Property (ich glaube das war GridAlignment).

documents[0] funktioniert als Ersatz für activeDocument, wenn der Server einfache Jobs abarbeitet. Wenn man für quasi interaktives Arbeiten mehrere Dokumente vorhalten will, muss man schon selber verwalten.

Weitere absichtliche Unterschiede: Undo kennt der Server nicht, für platzierte Bilder werden unter Umständen bzw. bestimmten Einstellungen keine Voransichten eingefügt (die sind dann beim Öffnen über den Desktop grau). Ausserdem gibt es ein paar mehr Performance-Metriken.

Zu den Problemchen:

Zumindest beim Mac muss man aufpassen, wenn sich mehrere Instanzen um die gleiche .indt Vorlage-Datei prügeln (besser eine private Kopie verwenden), oder ähnliche eigentlich readonly gedachte Dateien (Konfiguration usw.) speziell auf Shares. Ausserdem sollte man auf $.writeln() besser verzichten, der Aufruf wird mit langen Wartezeiten bestraft.

Im Vergleich zur Desktop Version verwende ich an ein paar Stellen mehr die Funktion recompose(), zum Beispiel sind die geometricBounds von verankerten Objekten nicht immer sofort verfügbar.

CS3 - war das unter Windows schon 64 Bit? Sonst sollte man über 'ne etwas höhere Versionsnummer nachdenken/probieren. Ist ja schon ziemlich lange aus jeglicher Wartung raus. Ab CS5 soll es auch Ansätze für einen Loadbalancer geben, den hab' ich aber noch nicht probiert, das macht sowieso besser der Application Server. Ich halte es für gewagt, wenn Clients den/die InDesign Server direkt unter Feuer nehmen, woher sollen die denn wissen, welche Instanz gerade mit einem Langläufer belegt ist?

Zum COM oder gar DCOM Zugriff kann ich nichts beitragen, da ich fast nur mit dem Mac arbeite. Dass man da noch über GetObject zwischen den Instanzen wählen kann klingt aber gut. Die Konfigurations-Nummer bestimmt ja sonst den Port für die SOAP Aufrufe sowie die Verbindung aus dem ESTK Debugger (auch manchmal etwas zickig).

Grüße,
Dirk