Hallo,
ich arbeite mich seit letzter Woche in InDesign, den Import von XML in InDesign und nun auch in das Skripting mit InDesign ein. Ich bin vorher nie mit DTP-Programmen in Berührung gekommen.
Auf jeden Fall habe ich (neben vielen weiteren) ziemlich genau die selbe Anforderung an ein Skript wie es durch madram beschrieben wurde. Deshalb bin ich froh das in diesem Thema bereits ein so gutes Skript erarbeitet wurde. Einige Fragen und Anmerkungen habe ich jedoch noch.
Dieses Problem habe ich versucht nachzustellen, konnte es aber in CS3 nicht mehr feststellen (allerdings weiss ich nicht genau was die Option "erben" im Kontext von InDesign bedeutet).
Bei dieser Zeile wirft mir ID einen JavaScript Fehler.
element.texts[0].parentStory.insertionPoints.itemBefore ist keine Funktion
Das Objektmodell für CS3 kennt nur previousItem(obj): InsertionPoint, und damit funktioniert es auch.
Als nächstes musste ich die Reihenfolge der Ereignisse anpassen (im Gegensatz zu der in Beitrag #4).
1. Zuerst die Cursorposition setzen
var myPointBefore = elem...
myPointBefore.select();
2. und erst dann ein neues Frame erzeugen
3. Text verschieben
element.texts[0].move(...
newFrame.markup(...
4. Objektstiel zuweisen
var margStyle = actDoc....
newFrame.applyObjectStyle(...
Nun meine Fragen:
Wenn der Text auf mehreren Textrahmen (bzw. die Story auf mehreren sog. 'textContainers') verteilt ist funktioniert das nur für den ersten Textrahmen (textContainers[0]).
Ich habe überlegt eine Schleife über die entsprechenden Textrahmen zu durchlaufen (for(j=0; j<currentStory.textContainers.length; ++j)), aber das Skript wird ja über die deepSearch()-Funktion nicht auf einem Textrahmen aufgerufen, sondern auf dem Dokument. Und das iteriert über die XML-Elemente. Da bin ich gerade etwas überfordert und würde mich freuen wenn mir jemand einen Hilfreichen Tip geben könnte.