Hallo Roderix,
bitteschön.
das Problem mit der Schrift rührt daher, dass im geposteten Code der Tabulator zwischen "Helvetica" und "Regular" durch vier Leerräume ersetzt worden ist. Wenn an deren Stelle im Script ein Tabulator gesetzt wird, dann sollte es klappen.
Ich habe jetzt nachträglich diese Leerräume durch
ersetzt, damit für später Dazukommende dieser Stolperstein weggeräumt ist.
Zur Frage wegen
yellowColor: Ausprobieren! Wenn im Code ...
---
,
fill color:"Yellow",
---
... verwendet wird, dann kommt diese Fehlermeldung:
Ein Widerspruch, weil "Yellow" ja ein String (eine Textkette) ist. Somit ist es ein Bug, welchen man mit dem Einsetzen einer Referenz auf die Grundfarbe "Yellow" umgehen kann.
Eigentlich könnte man auf die Variable verzichten:
---
,
fill color:
color "Yellow",
---
Beim Zuweisen der Hintergrundfarbe eines Rahmens funktioniert das Benutzen des direkten Strings. Vorausgesetzt, dass die Farbe existiert.
Mit "Farbe" ist nicht ein "Farbfeld" gemeint. Und "Yellow" und "Magenta" werden nur aus Bequemlichkeit benutzt, damit nicht ein Farbfeld erzeugt werden muss. In einem Script können nicht einfach CMYK-Anteile zugewiesen werden.
Nicht zu verwechseln mit den Werten, welche in den Namen von Farbfeldern zu sehen sind. Im Script könnte bei der Definition der Absatzvorlage ...
---
,
fill color:"C=0 M=0 Y=100 K=0",
---
... verwendet werden. Das würde klappen, aber nur wenn das entsprechende Farbfeld vorhanden ist.
In einem neu erzeugten InDesign-Dokument sind zusätzlich zu den nicht löschbaren Farbfeldern ("[Keine]", "[Papier]", "[Schwarz]", "[Passkreuze]") sechs weitere vorhanden (Cyan, Magenta, Gelb, Rot, Grün, Blau), deren Namen die definierten CMYK-Anteile wiedergeben. Diese Farbfelder sind "nicht verwendet", können mit dem entsprechenden Artikel des Fly-out-Menüs ausgewählt und durch Klick auf das Papierkorbsymbol gelöscht werden.
Wenn anschliessend dieses Script gestartet wird ...
---
tell document 1
of application "Adobe InDesign CS2"
name of swatches end tell ---
... erhält man: {"None", "Paper", "Black", "Registration"}
Und mit diesem ...
---
tell document 1
of application "Adobe InDesign CS2"
name of colors end tell ... ist das Ergebnis: {"Black", "Cyan", "Magenta", "Paper", "Registration", "Yellow", "", ""}
Das erklärt, warum "Cyan", "Magenta" und "Yellow" ohne Prüfung verwendet werden können, auch wenn sie im Dokument nicht sichtbar vorkommen.
Allerdings sollte man sie nur bei Objekten anwenden, deren Farbzusammensetzung später nicht geändert werden soll. Wie beim manuellen Verwenden von Farben tut man gut daran, ein Farbfeld zu erzeugen, damit man nur dessen Zusammensetzung ändern muss, um alle Vorkommen im Dokument zu erfassen.
Gruss, Hans