Vorbemerkung: ich bin blutiger Anfänger, brauche also eine Erklärung für Dummies Wenn ich eine Musterseite mit Textrahmen auf den Druckbogen ziehe, so sind die Textrahmen gesperrt. Man muss sie mit Strg+Shift "aktivieren". Wie macht man das in einem jsx-Script. Meine bisherigen Versuche mit z.B. app.activeDocument.textFrames.everyItem().select()wählen immer nur den Textrahmen auf der Musterseite aus und nicht die "gesperrten" Textrahmen auf dem Druckbogen.
Windows7 64 bit, CS6 Indesign 8.1 Über ein bisschen Starthilfe würde ich mich freuen. Peter Welbers
vermutlich geht es Dir nicht darum, den Mustertextrahmen zu lösen, denn mit CS6 ist dieser ohne weiteres zugänglich.
Du hast also auf den Seiten der Mustervorlage Textrahmen erzeugt. Diese müssen manuell nicht einzeln per Tastenkürzel gelöst werden. Im Bedienfeld "Seiten" die Seitensymbole auswählen und im Fly-out-Menü den Artikel "Alle Musterseitenobjekte übergehen" wählen.
Per Script können diese Rahmen auch "übergangen" werden. Der englische Script-Befehl lautet: override().
Mit dem folgenden Snippet wird im Dokument eine neue Seite angefügt. Das Script speichert die Musterseiten-Objekte dieser neuen Seite und in einer Schleife werden die Objekt übergangen.
Dabei spielt es keine Rolle, ob die neue Seite eine linke oder eine rechte ist. Oder ob es sich um ein Einzelseiten-Dokument handelt.
Gruss, Hans
(Dieser Beitrag wurde von Hans Haesler am 4. Jan 2016, 21:25 geändert)
Hallo Hans, vielen Dank für Deine schnelle "Starthilfe". Es ist schon erstaunlich, wie viele Zeilen in einem Script für zweit Tasten (Strg+Shift) und eine Mausbewegung notwendig sind.
Aber Dein Script hat mir sehr weiter geholfen. In Anlehnung an Dein Script habe ich etwas herumgespielt. In Deinem Script wird bei jedem Aufruf eine neue Seite angelegt. Wenn man das nicht will, reicht, wie ich gelernt habe, folgender Befehl für die erste Seite app.activeDocument.pages[0].appliedMaster.pageItems.everyItem().override(app.activeDocument.pages[0]);
Vielen Dank auch für den Hinweis "Alle Musterseitenobjekte übergehen" (Alt+Strg+Shift+L). Den kannte ich noch nicht. Grüße Peter
Okay, man hört oft: Je weniger Zeilen ein Script aufweist, desto "eleganter" ist es.
Die Schleife (inklusive 'try'-Wickel) in meinem Snippet, habe ich bewusst so gepostet. Einverstanden, bei einer neu eingefügten Seite ist die Wahrscheinlichkeit eines Problems gering.
Doch der Code könnte von einem Mitleser auf eine bestehende Seite abgewandelt werden. Und da genügt es, dass ein einziger Rahmen schon manuell übergangen worden ist. Dann fällt der Einzeiler auf die Nase: Eine Fehlermeldung stoppt die Ausführung.
Deshalb würde ich die Rahmen der ersten Seite so ansprechen:
Du hast natürlich Recht, mit einer Schleife und try kann man alle Seiten erreichen und Fehler vermeiden, aber ich hatte die Kurzreferenz aus dem Buch von Gregor Fellenz benutzt. Da ist es beim Probieren mit den verschiedenen Parametern einfacher, eine Zeile zu benutzen. Die kann man dann ganz parallel zur Kurzreferenz aufbauen.
Meine jetzige Variante lautet:
So richtig verstanden habe ich den Term getElements() nicht, aber ich habe den analog zum Beispiel Fellenz S 161 gemacht und -- es funktionierte. Das ist für mich erstmal die Hauptsache, die Kür kommt später. Grüße Peter
(Dieser Beitrag wurde von Hans Haesler am 4. Jan 2016, 22:58 geändert)
die Zählervariable 'i' ist eigentlich in Ordnung. Aber sobald dieses 'i' mit eckigen Klammern umgeben wird, wird es von der Serversoftware geschluckt und der Rest des Beitrags ist kursiv. Siehe den angehängten Screenshot "kursiv-png".
Ich habe jetzt Deine Antwort editiert und das 'i' durch 'n' ersetzt. Zudem ist der Code nun als Code formatiert. Dazu musst Du nur die Code-Zeilen auswählen und auf den Button "code" (unten links klicken).
Zu 'getElements()' werde ich vielleicht morgen etwas schreiben.
nochmal vielen Dank für Deine Hilfe. Aber wo findet man solche Tricks wie mit dem i (morgen bekomme ich die Übersetzung der Broschüre von Krahel, vielleicht darin). Aber der Logik, die man so von Excel-VBA kennt, entspricht das nicht. Dann vielleicht bis morgen Schönen Abend Peter Welbers
also das mit dem i ist kein JavaScript-Trick, sondern eine Formatierungs-Option der Beiträge im Forum. In der Anleitung von Peter Kahrel wird das somit nicht erwähnt.
Mit [i] werden Texte kursiv, mit [b] kann eine Buchstabenfolge bold hervorgehoben werden. Zum Aufheben der Auszeichnung setzt man [/i] und [/b] ein.
Du kannst in Deinen Scripts also weiterhin das i verwenden. Nur beim Posten von Code musst Du einen anderen Buchstaben wählen. Oder – wie schon erwähnt – den Zeilen ein [code] voranstellen und am Ende mit [/code] aufheben. Dann bleibt das [i] sichtbar und die folgenden Worte werden nicht kursiv gestellt: