Scripting-Technik kurz erklärt

Achtung, jetzt wird’s technisch. Aber keine Angst – das Thema ist für jeden verständlich.

Ein InDesign Plugin wird in C++ programmiert.  Diese Technik ist die „ursprünlichste“ Form der Funktionserweiterung für InDesign. Ein Vorteil der Plugin-Programmierung ist, dass komplett neue Funktionalitäten – die in InDesign eigentlich nicht vorhanden sind und die in die innerste Struktur eine InDesign-Dokuments Einfluss haben – hinzufügen kann. Der Nachteil ist ein relativ hoher Aufwand für die Erstellung, da alle Komponenten des Plugins (Oberfläche, Logik, Objekthandling) eigens programmiert werden muss. Es ist eine sehr „maschinennahe“ Programmierung.

InDesign-Scripting ist eine JavaScript-ähnliche Programmiersprache (ExtendScript). Es nutzt Funktionen die bereits nativ in InDesign vorhandenen sind. Das bedeutet, dass InDesign-Scripting auf alle Funktionen zugreifen kann, die ein InDesign-Nutzer auch mit der Maus am Bildschirm ausführen könnte (Eine neue Seite anlegen – einen Rahmen ziehen – ein Bild platzieren – Text einfügen). Diese Funktionen werden automatisiert per Script aufgerufen, Entscheidungen getroffen und Seiten mit Content gefüllt.

Extensions werden mit HTML, JavaScript und ExtendScript programmiert und basieren auf der Adobe Common Extensibility Platform (CEP). Extensions können für die meisten Adobe CC Anwendungen (InDesign, InCopy, Photoshop, Bridge, Illustator, Premiere Pro u.a.) programmiert werden. InDesign-Extensions verbinden eine mit Standard-HTML erstellte Oberfläche haben mit der vollen InDesign-Scripting-Power. Für den JavaScript-Teil der Extension sind zahlreiche frei verfügbare Bibliotheken vorhanden. So kann man InDesign um neue Funktionen erweitern: Anbinden von InDesign an eine WebAPI

Als Panel (Bedienfeld) bezeichnet man die Oberfläche der Extensions. Die Panels verhalten sich genauso wie die nativ in InDesign eingebauten Bedienfelder. Sie können angedockt und verkleinert werden – oder sie sind ‚floating‘ über dem InDesign-Dokument.

Unsere Kunden sind überrascht wie professionell unsere InDesign-Panels aussehen. Falls gewünscht sieht man optisch keinen Unterschied zwischen einem Panel und einem InDesign Plugin. Das UI (User Interface) passt sich ganz dem Farbschema der persönlich eingestellten InDesign-Oberfläche an.

Beim vollautomatisierten Publishing werden die Seiten komplett (d.h. zu 100%) vom Script erzeugt. Wenn das Script die Seite aufgebaut hat, gibt das Script die Seite noch als PDF-Datei aus. Ein manuelles Eingreifen ist nicht mehr notwendig.

Beim halbautomatisierten Publishing erzeugt ein Script ein Grundgerüst, das anschließend noch manuell verändert wird. Oder ein Script überwacht im Hintergrund die manuellen Aktivitäten und bietet in einem Bedienfeld bzw. Panel dazu passende Menüaktionen an.
Zum Beispiel: Immer wenn man auf einen Bildrahmen klickt, dann wird eine Liste von Bildern aus einer Bilddatenbank in einem Fenster angezeigt. Per Klick auf einen Bildeintrag in dem Fenster wird das Bild automatisch aus der Bilddatenbank gezogen und passend platziert.

Beim template-basierten Publishing werden Schablonen der Seiten mit externen Daten gefüllt – die Schablonen enthalten Markierungen, die durch die gewünschten Daten ersetzt werden.

Das Script kopiert die gewünschte Schablone auf eine leere Seite, verknüpft die externen Daten mit den Platzhaltern, fügt eine neue Seite hinzu und beginnt von neuem – bis alle Datensätze verarbeitet sind.

Je nach Inhalt der externen Daten kann das Script verschiedene Schablonen verwenden. Zum Beispiel eine Schablone für Daten, die eine Abbildung referenzieren, eine Schablone für Daten ohne Abbildung.

Beim regel-basierten Publishing wird das Layout durch Layout-Regeln beschrieben. Abhängig von den Inhalten der externen Quelle werden auf der Seite Textrahmen und Bildrahmen automatisch generiert.

Das bedeutet: Die Seiten sind zunächst alle leer. Das InDesign Script erzeugt alle Textrahmen und Bildrahmen nach vordefinierten individuellen Regeln – Seite für Seite.

Welche Daten kann InDesign verarbeiten? Woher können die Daten kommen?

Das einfachste ist, wenn alle Daten bereits im InDesign-Dokument sind. Dann stellt das InDesign-Script Dokument-Inhalte um, sucht nach Textmustern, markiert Inhalte nach gewissen Regeln. Meistens wird externer Inhalte hinzugefügt. Dieser externe Inhalt kann aus Datenbanken, aus Webservice-Schnittstellen oder aus Textdateien stammen.

Aber auch externe Datenquellen können verarbeitet werden.  Denkbar sind Daten aus …

  • CSV-Dateien
  • XML-Dateien
  • REST-Schnittstellen (Webservices)
  • Datenbanken (Microsoft SQL-Server / mySQL)

Beispiel: Suchen nach Artikelnummern

Sie haben bereits einen manuell gesetzten Produktkatalog und wollen prüfen, ob alle irgendwo auf den Seiten verwendeten Artikelnummern „gültige“ Artikelnummern sind. Eine mögliche Lösung dieser Aufgabe könnte ein Script sein, das eine Textdatei mit gültigen Artikelnummern einliest, alle Zeichenketten im Dokument mit einer Liste der gültigen Artikelnummern vergleicht. Diese gefundenen Artikelnummern werden in einer nicht-druckbaren Ebene mit einem grünen Rechteck hinterlegt. Wenn Sie jetzt Ihre Seiten betrachten und noch nicht-markierte Artikelnummern sehen, dann sind diese Artikelnummern nicht in der Liste und damit „ungültig“. Das Ganze ließe sich natürlich noch verfeinern, indem das Script als erste Prüfung die Artikelnummer einem Mustervergleich unterzieht. Angenommen, Ihre Artikelnummern sind alle systematisch aufgebaut: zwei Ziffen, ein Bindestrich, zwei Buchstaben, ein Bindestrich, vier Ziffen 19-ZB-5478. Dann ließe sich vor dem Vergleich mit der Textdatei, jedes Wort aus der InDesigndatei schon mal einem Mustervergleich unterziehen.

Beispiel: Texte und Bilder aus Webservice-Schnittstelle auslesen

Sie öffnen eine vorbereitete InDesign-Datei. Sie enthält spezielle Stilvorlagen (Zeichen, Absatz, Objekte, Tabellen Zellen) und Musterseiten. Über ein InDesign-Panel loggen Sie sich über einen Webservice in eine in der Cloud liegende Datenbank ein, wählen Produktdaten aus und laden Content herunter, der script-gesteuert auf den InDesign Seiten gesetzt wird.

Mit GREP-Stilen können Sie Fließtext, der einem Zeichenkettenmuster entspricht, formatieren.

Beispiel: Sie wollen im Text alle Vorkommnisse eines Datums rot formatieren.
Der zugehörige reguläre Ausdruck lautet. \d{1,2}\.\d{1,2}\.\d{4}

Hier im Video wird ein Absatzformat so formiert, dass alle Datumsausdrücke in roter Schrift erscheinen.

GREP-Befehle dienen der Suche, Filterung und Ersetzung von Zeichenketten in Dateien.
Durch das Ausführen von GREP-Befehlen können innerhalb von Sekunden beliebige Texte, Glypen, Zahlen, etc. in Massentexten gefunden und ersetzt  bzw. umformatiert werden. GREP-Befehle werden während der Laufzeit eines Adobe InDesign-Scripts ausgeführt.

Mit InDesign-Panels erweitern Sie die Funktionalitäten von InDesign ganz nach Ihren individuellen Vorstellungen.

Panels können

  • Datenbankinhalte anzeigen,
  • Buttons für Bildmanipulationen bereitstellen,
  • Statusmeldungen anzeigen,
  • alles was Sie sonst noch benötigen um Ihre Katalogproduktion zu automatisieren.

Mit der Adobe InDesign CC Funktion »Bedingter Text« wird die Sichtbarkeit von Text mit einer Bedingung verbunden. Diese Bedingung kann zu zum Beispiel die Darstellung einer Sprache innerhalb eines Textrahmens sein.

Der Vorteil: Sie haben in einem Textrahmen, Text mit zwei unterschiedlichen Sprachen gesetzt. Sie verschieben den Textrahmen und verschieben gleichzeitig die Texte beider Sprachen.

Ein Snippet (mit der Erweiterung IDMS) ist eine XML-Datei, die InDesign-Objekte (Rahmen, Texte) enthält. Diese XML-Datei kann man als Schablone nutzen und programmgestützt speziell markierte Platz mit Datenbank-Inhalt ersetzen,

Anwendungsbeispiel:

Aus einer Vielzahl von Datenbankfeldern werden einzelne Informationen durch verschachtelte Businessregeln zu einem Gesamteintrag verbunden, als Snippet gespeichert und als Einheit auf der Adobe InDesign Seite gesetzt.

Normalerweise können Sie mit InDesign-Bordmitteln Bilder nur in einen Bildrahmen basierend auf den Bildabmessungen einpassen. Mit manchen Bildern ist das aber nicht zielführend, da sie nicht eng um das Bildobjekt beschnitten sind, das sie einen Freistellungspfad beinhalten.

Mit der von uns entwickelten InDesign Erweiterung fügen Sie Bilder passend in einen Bildrahmen ein, basierend auf den Freistellungspfad bzw. basierend auf den im Bild gespeicherten Freistellungspfad. Oder Sie lassen

Rufen Sie an oder schreiben uns – wir beraten Sie gerne!