Heft-Archiv >> 2005 >> Publisher 3-05 >> Prepress >> Die Heinzelm�nnchen des Layouters: Scripting in InDesign
Artikel als PDF

Die Heinzelm�nnchen des Layouters: Scripting in InDesign

Scripting für Adobe InDesign – ein Buch mit sieben Siegeln?

Die Heinzelmännchen des Layouters

Mit Skripten lässt sich InDesign dazu bringen, lästige Routineaufgaben automatisch zu erledigen. In manchen Fällen stellen sie sogar eine gleichwertige Alternative zu teuren Plug-ins dar.

HORST HUBER Wer sucht sie nicht: die elegante Funktion, die endlich Arbeit und Zeit spart bei der Bearbeitung von InDesign-Dokumenten. Die Lösung gibt es bereits: Skripte und damit jede Menge Möglichkeiten, neue Funktionalitäten zu erstellen. Doch noch immer nutzen viele Anwender das ganze Potenzial der Automatisierung nicht aus, auch aus Unkenntnis der Möglichkeiten, die InDesign-Skripte dem Anwender eröffnen. Höchste Zeit also für eine kurze Einführung in die Welt der InDesign-Skripte.

Was ist überhaupt ein Skript?

Ein Skript ist ein kleineres Programm, verfasst in einer speziellen Programmiersprache, nicht direkt ausführbar, sondern von einem Interpreter ausgeführt. Skripte dienen zur Automatisierung von Aufgaben und zur Erweiterung der Fähigkeiten einer Applikation. Dafür muss das Anwendungsprogramm für jede Programmiersprache entsprechende Schnittstellen zur Verfügung stellen. Auch wenn sich das lapidar anhört, ist es doch keine Selbstverständlichkeit. Adobe InDesign CS 1 unterstützt Visual Basic und VB Script für die Windows-Plattformen sowie Apple Script für die Mac-OS-X- Plattform. Zusätzlich kann Javascript als plattformübergreifende Skriptsprache eingesetzt werden.

Mit Hilfe eines Skripts lassen sich gleichzeitig mehrere Anwendungsprogramme abfragen und steuern. Neben der Steuerung von Adobe InDesign kann ein Skript also auch eine Tabellenkalkulation, eine Textverarbeitung oder eine Datenbank abfragen. Damit schlägt es die Brücke zwischen zwei Programmen.

Automatisierte Seitenerstellung

Seitenerstellung auf Knopfdruck ist eine klassische Anwendung von Skripten. Dabei bieten Skripte für die Seitenerstellung eine kostengünstige Alternative zu Database-Publishing- Plug-ins von Drittanbietern.

Per Skript wird der Inhalt einer externen Datenquelle (z.B. eine Datenbank oder eine XML-Datei) eingelesen und in ein InDesign-Dokument übernommen. Die Skripte zur automatischen Seiten­erstellung bedienen sich dabei zweier kombinierbarer Verfahren.

Beim ersten arbeitet das Skript mit Importfiltern. Häufig wird dabei die XML-Importfunktion oder der Tagged-Text-Importfilter eingesetzt. Zum Leistungsumfang der Skripte gehören die Datenaufbereitung wie auch die Nachbearbeitung des aufgebauten InDesign-Dokumentes, wie das Anlegen von Seiten, das Formatieren von Texten oder das zusätzliche Platzieren von Bildern etc.

Das Skript kann auch direkt mit dem Object Model von Adobe InDesign arbeiten. Dabei werden einzelne InDesign-Objekte angelegt, mit Daten gefüllt und formatiert. Häufig wird auch mit Templates gearbeitet, die in standardisierten InDesign-Dokumenten als Vorlagen definiert sind. Die Skripte kopieren dann die Rahmen aus den Vorlagen auf die einzelnen Seiten und füllen diese mit Daten. Ein Weg, der mit den sogenannten Snippets der InDesign-CS-Version 2 sicherlich noch wesentlich an Popularität gewinnen wird.

Routineaufgaben programmieren

Das zweite Anwendungsgebiet für Skripte sind unterschiedlichste Routineaufgaben beim Arbeiten mit Adobe InDesign. Die Aufbereitung der InDesign-Dokumente für den Druckprozess, Umformatierungen von Dokumenten, Hilfe bei der Bearbeitung einzelner InDesign-Objekte (z.B. automatische Grössenanpassung von Textrahmen), Dokumentenverteilung, Zusammenführen von Ebenen – die Beispiele sind fast endlos und entsprechend bietet die Skriptfähigkeit von Adobe InDesign weitgehende Möglichkeiten der Automatisierung. Voraussetzung dafür ist allerdings immer, dass der Arbeitsablauf eindeutig im Skript definiert werden kann. Arbeiten, die von Fall zu Fall verschieden sind und je nach Ermessen des Layouters so oder anders gemacht werden müssen, können von einem Skript nicht erledigt werden.

Beeindruckende Skriptfähigkeiten von Adobe InDesign

Nahezu jede Tätigkeit, die über Werkzeuge, Menüs, Paletten und Dialogfelder von Adobe InDesign ausgeführt wird, kann auch ein Skript übernehmen. Zusätzlich bietet Adobe InDesign die Möglichkeit, mit Hilfe von Skripten Dialoge zu erstellen, um die Eingabe des Anwenders zu ermöglichen. Und das Wichtigste: Das Skript spricht auch das InDesign Object Model an.

Vererbung ohne Erbschaftssteuer

Adobe InDesign ist komplett objekt­orientiert programmiert. Eine Tatsache, die jedes Entwicklerherz höher schlagen lässt. Objektorientierte Programmierung ist eine Methode aus den 80er-Jahren, die es erlaubt, komplexe Anwendungen einfach zu erweitern, zu pflegen und zu ändern. Die wesentlichen Konzepte sind Klassen, Objekte, Methoden und Vererbung.

Alle Bestandteile in einem InDesign- Dokument sind Objekte: die einzelnen Seiten, ein Textrahmen und auch das InDesign-Dokument selbst. Den Typ des konkreten Objekts, z. B. «Text­rahmen», nennt man eine Klasse. Ein Objekt besteht immer aus zwei Teilen: Daten und Methoden. Mittels Methoden werden Objekte angesprochen, angelegt, verändert und gelöscht. Um ein Objekt bearbeiten zu können, muss dieses zunächst angesprochen werden. Dieses Vorgehen entspricht der normalen Bearbeitung in InDesign: Ein Element (Rahmen, Texte etc.) muss markiert sein, bevor es bearbeitet werden kann.

Genau so verhält es sich auch bei der Skriptprogrammierung: Zuerst muss das gewünschte Objekt «markiert» werden, eine so genannte Objektreferenz muss erstellt werden. Die Objektreferenz ist quasi der Verweis auf ein Objekt.

Das Spannende bei der objektorientierten Programmierung ist jedoch das Konzept der Vererbung. Objekte können Funktionalitäten und Daten an andere, spezifischere Objekte vererben. Beispielsweise sind alle Elemente auf einer InDesign-Seite von dem Objekt «Page Item» (dt.: Seitenelement) abgeleitet. Auf der Ebene des Page Item sind Eigenschaften hinterlegt, die jedes Element aufweist, zum Beispiel die Koordinaten. Diese Eigenschaft wird nun automatisch an alle anderen Objekte vererbt, so dass die Funktionalität (Methoden und Eigenschaften) nur an einer Stelle programmiert werden muss und dann flexibel an andere Objekte (Klassen) weitergegeben werden kann. Bei der Erstellung von Skripten trifft man immer wieder auf die Objektorientierung von InDesign, auch wenn die Skriptsprachen selbst nicht objekt­orientiert sind.

Einfach in der Anwendung­– und in der Erstellung?

Adobe behauptet vollmundig, dass Skripte von jedem InDesign-Anwender erstellt werden sollten. Diese Aussage ist – um es vorsichtlich zu formulieren – sehr fragwürdig. Wenn jemand einen Nagel in die Wand schlagen kann, heisst das noch lange nicht, dass er an seinem Haus selber einen Wintergarten bauen kann. Wer Skripte für den professionellen Einsatz erstellen will, benötigt Programmiererfahrung. Dazu muss man nicht unbedingt ein professioneller Softwareentwickler sein, der jahrelang Plug-ins entwickelt hat, aber doch einen profunden Erfahrungshintergrund in strukturierter Programmierung und in der Erstellung umfangreicherer Software besitzen. Welche Programmiersprache bisher eingesetzt wurde, spielt dabei eine geringere Rolle – die Einarbeitung in Apple Script, Visual Basis oder Java Script ist nicht allzu aufwendig.

Jedem Programmieranfänger ist grundsätzlich zunächst die Lektüre eines Buches über strukturierte Programmierung zu empfehlen. Unstrukturierte Skripte – egal, in welcher Programmiersprache erstellt – werden schnell unübersichtlich und können dann nur noch schwer geändert oder erweitert werden. Ein simples Skript, z.B. für die automatische Höhenanpassung eines Textrahmes an die vorhandene Textmenge, besteht aus ca. 250 Zeilen Programmcode (LOC = Line of Codes). Umfangreichere Skripte haben häufig Tausende LOCs. Eine saubere und strukturierte Programmierung ist daher unerlässlich.

Die Abbildung zeigt ein Beispiel für ein extrem einfaches Skript: Es legt ein neues Dokument mit einem Rahmen an und schreibt in den Textrahmen «Hello world».

Zusammenfassung

Der steigende Kostendruck, die immer höheren Kundenanforderungen an Qualität und Geschwindigkeit zwingen Mediendienstleister, die Prozesse kontinuierlich zu optimieren. Skripte bieten vielfältige Möglichkeiten, mit geringem Aufwand grosse Effekte zu erzielen. Im Internet sind jede Menge frei verfügbare Skripte zu finden. Die Entwicklung eigener Skripte bedarf jedoch Programmiererfahrung und sollte nicht auf die leichte Schulter genommen werden.

 

Kasten: Cool Scripting

Für eine sehnlichst vermisste Funktion ist es nicht unbedingt nötig, auf die nächste InDesign-Version zu warten oder ein Plug-in zu kaufen. Auch ein Skript kann die Lösung sein.

Das Potenzial der Skriptprogrammierung wird häufig unterschätzt, was die Arbeitserleichterung oder Automatisierung in InDesign betrifft. Deshalb wurde die Aktion Cool Scripting ins Leben gerufen. Auf der ersten InDesign-Konferenz in der Schweiz werden die coolsten Ideen für Skripte prämiert. Wer hat eine Idee für eine Funktion, die man unbedingt haben muss? Wer ärgert sich über einen Arbeitsschritt, den man immer wieder ausführen muss?

Diesen Wunsch einfach in das Formular auf der unten angegebenen Website eintragen, und ab damit.
Die besten Ideen und ihre Umsetzung in Skripte werden an der InDesign-Konferenz prämiert. Zusätzlich gibt es zur InDesign-User-Konferenz alle umgesetzten Skripte kostenlos auf CD.

http://www.indesign-konferenz.ch/konferenz/coolscripting

 

 

 

Artikel als PDF