Basisfunktionalitäten der priint:comet Plugins und Implementierung der Skriptsprache cscript

CometXML ist die Standard-Variante des Plugins für die Desktop-Version von InDesign®.

Die Namens-Endung XML steht nicht für die unterstützte Datenverbindung, sondern dafür, dass in dieser Variante speziell definierte Skripte in der XML-Struktur des Dokumentes ausgeführt werden können.

InDesign® kann Rahmen und Texte mit XML-Elementen verknüpfen. Wählen Sie einen Eintrag des Popupmenüs in der Palette Comet aus, werden die XML-Elemente aller ausgewählten Dokumentrahmen nach einem XML-Element des gewählten Namens durchsucht. Hat ein Rahmen so ein Element, wird der Element-Wert geholt und als cScript ausgeführt.

Hinweis: Wenn Sie lediglich ein Skript testen wollen, das Sie als Datei vorliegen haben, finden Sie hier eine sehr einfache Möglichkeit.

Hier eine Schritt-für-Schritt-Anleitung :

  1. Öffnen Sie die XML-Struktur des Dokumentes (Command+Alt+1 oder das Menü Ansicht:Struktur:Struktur zeigen)



  2. Fügen Sie dem Element Root-Element das Element cscripts (in genau dieser Schreibweise) hinzu.

  3. Doppelklick des Elements Root > cscripts.

    Im erscheinenden Fenster schreiben Sie in das Feld Wert des Elementes alle Skriptnamen, die Sie im Menü der Palette CometXML sehen wollen. Die Einträge werden durch Komma getrennt.

    Achten Sie darauf, dass Sie hier die Namen von XML-Elementen vergeben. Die müssen einer festgelegten Syntax entsprechen : Beginnen Sie mit einem Buchstaben a-zA-Z. Danach dürfen beliebig viele weitere Buchstaben [a-zA-Z] und Zahlen [0-9] folgen.

  4. Ziehen Sie den Rahmen, der ein Skript ausführen soll, in die XML-Struktur.

  5. Legen Sie unter dem Element des Rahmens ein neues XML-Element an. Geben Sie diesem Element den gewünschten Namen. Im Wert des Elementes tragen Sie das Skript ein. Das ist die meiste Arbeit.

CScripts werden zur Prorammlaufzeit übersetzt und im Arbeitsspeicher ausgeführt. Standardmäßig sind dafür 128 kB vorgesehen. Insbesondere lange Skripte und große statische Variablen (z.B. char str [1000000]) können diesen Bedarf leicht übersteigen. Sie erhalten dann eine Meldung der Art :

    

Dann sollten Sie die Größe des verwendeten Puffers hochsetzen. Die Änderung gilt für alle nachfolgend ausgeführten Skripte und ist Neustart-resistent.

In Skripten können Sie die Größe des Skript-Puffers mit prefs::set_script_buffer einstellen. Änderungen gelten dann natürlich erst für alle später ausgeführten Skripte. Sie machen die Einstellung deshalb am besten im Login-Skript.

Comet++ realisiert eine datenbankgestützte Stapelverarbeitung von Dokumenten. Die Dokumente des Stapels werden in der Tabelle ScheduledJobs festgelegt. Zu jedem Dokument wird eine als cScript implementierte Aktion definiert, mit der das Dokument bearbeitet werden soll. Weitere Information zum Batch-Betieb der Server-Plugins erhalten Sie unter support@priint.com.

Für jedes Dokument des Stapels werden folgende Schritte ausgeführt:

  1. Öffnen des Dokumentes
  2. Ausführen des Bearbeitungsskriptes.
  3. Sichern und Schließen des Dokumentes

Sie können die Stapelverarbeitung auch in Netzen verwenden, in denen Macs und Windows-Rechner arbeiten. Das Datenbankattribut dmn_ScheduledJobs.Program legt fest, welches Programm einen Job bearbeiten darf. Folgende Angaben sind möglich:

Programm Beschreibung
InDesign.comet Bearbeitung unter MacOSX
InDesign.Windows.comet Bearbeitung unter Windows

Reader-Version des Plugins Comet. Das Plugin hat keine eigene Palette und keine eigenen Menüs.

Schnellzugriff auf Ihre meistbenutzten Palettenaktionen und lokalen Skripte. Die Palette ist in den Plugins CometXML und Comet++ enthalten.

    

Mit einer Definiion im Attribut inputdocumentation der Aktion können Palettenaktionen als globale Buttons in die Palette Front Row aufgenommen werden. Globale Buttons werden immer zuerst in der Palette platziert und mit normaler Schrift beschriftet. Die Buttons können von allen Benutzern gesehen werden, die eine Verbindung zum Datenpool hergestellt haben. Globale Buttons können nicht entfernt werden.

Die inputdocumentation besteht aus bis zu drei, durch ## getrennte Angaben:

Buttonname##IconID##Hilfetext

Der erste Teil der Definition gibt den Namen des Buttons an. Ist die Angabe leer, wird der Name der Palettenaktion verwendet. Besteht der Name der Palettenaktion aus einem Pfad, wird nur der Namensteil verwendet.

Der Name wird mit Hilfe der aktuell verfügbaren Übersetzungen automatisch in die Sprache des verwendeten InDesign® übersetzt.

Beachten Sie bitte, dass die Namen der Palettenaktionen häufig zu lang für die Beschriftung der Buttons sind - eine eigene Namensdefinition für Buttons ist also in der Regel sinnvoll.

Anlegen der Palettenaktion als Button "Mein Button" mit dem Icon und ohne Hilfetext.

Mein Button

Im zweiten Teil der inputdocumentation wird das Icon des Buttons festgelegt. Eine Liste der möglichen Icons finden Sie hier. Fehlt die IconID, wird als Default das Icon 408 verwendet. Existiert das Icon nicht, wird das Button ohne Icon erzeugt.

Anlegen der Palettenaktion als Button "Mein Button" mit dem Icon 2018 der Produktrecherche und ohne Hilfetext

Mein Button##32018

Ist eine Palettenaktion mit dem Namen A^B^Mein Button definiert, erzeugt die folgende Definition das Button Mein Button mit dem Icon 130 der Palette Einstellungen.

##50130

Es ist guter Stil, den Buttons einen kurzen Hilfetext hinzuzufügen. Der Hilfetext wird im dritten Teil der inputdocumentation definiert.

Der Hilfetext wird mit Hilfe der aktuell verfügbaren Übersetzungen automatisch in die Sprache des verwendeten InDesign® übersetzt.

Anlegen einer Palettenaktion als Button "Mein Button" mit dem Icon 2018 der Produktrecherche und einem übersetzbaren Hilfetext.

Mein Button##32018##kMyButton_Help

Die folgende Tabelle beschreibt alle Varianten einer inputdocumentation für ein Front Row Button:

inputdocumentation Beschreibung
Leer kein Button
aaa

Button aaa mit Icon und ohne Hilfetext.

aaa####Hilfetext

Button aaa mit Icon und dem Hilfetext Hilfetext

aaa##30218

Button aaa mit Icon 218 der Produktrecherche und ohne Hilfetext

aaa##30218##Hilfetext Button aaa mit Icon 218 der Produktrecherche und dem Hilfetext Hilfetext
####Hilfetext Button mit dem gleichen Namen wie die Palettenaktion, dem Icon und dem Hilfetext Hilfetext
##30218 Button mit dem gleichen Namen wie die Palettenaktion, dem Icon 2018 der Produktrecherche und ohne Hilfetext
##30218##Hilfetext Button mit dem gleichen Namen wie die Palettenaktion, dem Icon 2018 der Produktrecherche und dem Hilfetext Hilfetext

Auch Palettenaktionen ohne global definierte Front Row Buttons können als Buttons dargetstellt werden.Diese Buttons sind nur im lokalen InDesign® sichtbar und werden in der Palette mit Schrägschrift beschriftet. Andere InDesign®-Installationen sehen diese Buttons nicht. Die hinterlegten Buttons werden mit einer Kennung versehen, die sicherstellt, dass jeweils nur die Buttons gezeigt werden, die zur aktuellen Datenverbindung gehören. Beachten Sie bitte, dass lokale Buttons nur für definierte Palettenaktionen angelegt werden können!

Lokale Buttons werden mit Hilfe des +-Buttons der Palette erzeugt. Sie werden nach dem Namen des Buttons und einem möglichen Hilfetext gefragt. Hinter dem Namen können Sie durch # getrennt das gewünschte Icon festlegen. Eine Liste der möglichen Icons finden Sie hier. Fehlt die Angabe eines Icons, wird das Icon 408 verwendet.

Mit dem x-Button der Palette können lokal definierte Button wieder entfernt werden.

[seit v4.1.8 R28082] Bei Bestehen einer gültigen Datenverbindung können unabhängig von der Verbindung weitere Skripte aus lokalen Dateien in die Palette geladen werden. Externe Änderungen an den Dateien werden vor der Skriptausführung in die Palette übernommen - Sie können die Skripte also in Ihrem Lieblingsprogramm editieren und sofort in InDesign® testen. Skriptdateien können die Endungen c, cpp, h, crpt und (seit v4.2 R32685) jsx haben und werden (in dieser Reihenfolge) in den folgenden Ordnern gesucht:

Die Skripte dürfen nicht verschlüsselt sein!

Mit ALT-Klick in das Laden-Button der Palette werden die Einträge neu geladen.

Mitunter wollen Sie vielleicht Skripte testen, die 'irgendwo' anders hinterlegt sind. In diesem Fall können Sie statt der Skriptdatei selbst auch einen Alias auf diese Datei in den Ordner cscripts legen. Beachten Sie dabei bitte folgendes:

Als Name der Front Row - Buttons weden die Dateinamen ohne Endung verwendet. Die Buttons bekommen standardmäßig das Icon 408 . Zur Konfiguration fügen Sie an beliebiger Stelle des Skripte einen Kommentar mit den folgenden (optionalen) Angaben ein:

[seit v4.2 R32685] Dateien mit der Endung jsx werden als Javascript ausgeführt. Folgende zusätzliche Variablen werden für diese Skripte automatisch definiert:

Variable Beschreibung
gRun Siehe hier. Textauswahlen werden von der Javascript-Ausführung nicht unterstützt.
gDocRef1 Aktuelles Front-Dokument oder 0
gItemRef1 Aktueller Rahmen der Skriptausführung oder 0

Hier ein sehr einfaches Javascript. Im Dokument muß das Farbfeld 'orange' definiert sein.

function main ()
{
	if (gItemRef1 != 0)
	{
		gItemRef1.fillColor = "orange";
	}
	return 0;
}

main ();

[Seit v5.0 R36440] Schreiben Sie eine Anfrage, die InDesign® für Sie erledigen soll. Die Anfrage kann in normaler Umgangssprache formuliert werden. Aber je präziser Ihre Anfrage ist, um so besser wird das Ergebnis werden. Im Hintergrund wird Ihre Anfrage in Programmcode (ExtentScript Javascript) übersetzt, den InDesign® ausführen kann. Mehr Informationen finden Sie hier.