[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt move-Befehl funktioniert nicht in Tabellen hinein

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

move-Befehl funktioniert nicht in Tabellen hinein

Steve Howe
Beiträge gesamt: 73

16. Jul 2015, 16:50
Beitrag # 1 von 1
Bewertung:
(682 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo!

Ich habe ein Script geschrieben, welches die Indexmarken aus der Palette mit entsprechenden XML-Tags versieht und dann an die Stelle schiebt, an der die Indexmarke im Textfluss steht. Funktionierte bisher wunderbar. Nur ist mir nun aufgefallen, dass das XML-Konstrukt nicht verschoben wird, wenn die Marke in einer Tabelle steht. Woran liegt das?
Oder anderer Lösungsansatz: Kann ich das Element indexentry gleich an der Stelle erzeugen, wo die Indexmarke steht?
anbei das Script und ein Testdokument (Cs6)
http://we.tl/3e6yYKtGIV
Code
//DESCRIPTION:Fügt alle Stichwörter von der Indexpalette in den Text an der jeweilige Stelle ein und taggt sie als indexentry 
if (app.documents.length == 0) {
alert("kein Dokument geöffnet");
} else {
var meinDokument = app.activeDocument;
var rootElement = meinDokument.xmlElements[0];
var ebene = 0;
var StichwortAnzahl = 0;

if(meinDokument.indexes.item(0).topics.length) {
ersetzeIndexMarken(meinDokument.indexes.item(0).topics); //Indexmarken druchrödeln
alert(StichwortAnzahl+" Indexmarken getaggt");
} else {
alert("keine Indexmarken gefunden");
}
}

function ersetzeIndexMarken(alleThemen) {
for (var i = 0; i < alleThemen.length; i++) { //über alle Topics laufen
var meinThema = alleThemen[i];
for (var j = 0; j<meinThema.pageReferences.length; j++) {
if (ebene == 1) {
var eintrag = rootElement.xmlElements.add("indexentry");
eintrag.xmlAttributes.add("index",meinThema.parent.name);
var eintrag1 = eintrag.xmlElements.add( "entry1");
eintrag1.contents = meinThema.name;
}
if (ebene == 2) {
var eintrag = rootElement.xmlElements.add("indexentry");
eintrag.xmlAttributes.add("index",meinThema.parent.parent.name);
var eintrag1 = eintrag.xmlElements.add( "entry1");
eintrag1.contents = meinThema.parent.name;
var eintrag2 = eintrag.xmlElements.add( "entry2");
eintrag2.contents = meinThema.name;
}
if (ebene == 3) {
var eintrag = rootElement.xmlElements.add("indexentry");
eintrag.xmlAttributes.add("index",meinThema.parent.parent.parent.name);
var eintrag1 = eintrag.xmlElements.add( "entry1");
eintrag1.contents = meinThema.parent.parent.name;
var eintrag2 = eintrag.xmlElements.add( "entry2");
eintrag2.contents = meinThema.parent.name;
var eintrag3 = eintrag.xmlElements.add( "entry3");
eintrag3.contents = meinThema.name;
}
if (ebene >3) {alert("Stichwort mit Ebene 4 darf nicht vorkommen");}
else {
StichwortAnzahl++;
eintragVerschoben=eintrag.move(LocationOptions.BEFORE, meinThema.pageReferences[j].sourceText.insertionPoints[0]); //Tag vom Storyende zur Indexmarke schieben
eintragVerschoben.texts.everyItem().clearOverrides(OverrideType.CHARACTER_ONLY); //Abweichung auf Indexmarke löschen
eintragVerschoben.texts.everyItem().fillColor=meinDokument.swatches.itemByName("Anmerkungen");
}
}
if(meinThema.topics.length>0) { //wenn Unterstichworte vorhanden sind
ebene++;
ersetzeIndexMarken(meinThema.topics);
ebene--;
}
}
}

X