[GastForen Programme Print/Bildbearbeitung Adobe InDesign [Scripting] Tabellen per Script erstellen

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

[Scripting] Tabellen per Script erstellen

MarS
Beiträge gesamt: 18

18. Sep 2006, 10:08
Beitrag # 1 von 5
Bewertung:
(2913 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich möchte gerne eine Tabelle inklusive Spalten, Zeilen und Formatierungen erstellen.

Dafür habe ich ein Script geschrieben, welches eine markierte Tabelle als Vorlage nimmt und die Zeilen und Spalten inklusive Formatierungen in JS-Code umwandelt und diesen in den XMP-Daten abspeichert. Beim erneuten Aufruf des Scriptes wird man gefragt, ob man die Tabelle erstellen möchte.

Die Tabelle besteht aus 3 Zeilen und 2 Spalten. Die linke Spalte ist blau, die rechte weiß.

Nun gibts aber ein Problem: Aus 3 Zeilen (dass er die Spalten erstellt habe ich erstmal abgestellt, da das dann noch mehr durcheinander wird) werden 36 Zellen - oben 6 Zeilen/4 Spalten weiß, unten 3 Zeilen/4 Spalten weiß.

Im vom Script generierten Code werden der Tabelle jedoch nur 3 Zeilen hinzugefügt (die Quelltabelle hat ja auch nur 3 Zeilen).

myRow.Columns (myRow = eine Zeile) bringt auch irgendwie wenig; denn die Liste gibt offensichtlich nicht nur die Spalten der Zeile zurück. Auch umgekehrt (die Zeilen einer bestimmten Spalte hinzufügen) kommt nicht das raus was rauskommen soll (auch wieder eine Tabelle mit viel zu vielen Zellen). Und myRow.Columns.Rows ended in einer Endlosschleife.
X

[Scripting] Tabellen per Script erstellen

Gerald Singelmann
  
Beiträge gesamt: 6269

18. Sep 2006, 11:07
Beitrag # 2 von 5
Beitrag ID: #251361
Bewertung:
(2898 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo MArs,

vielen Dank für den Erfahrungsbericht.

Welches ist die Frage?

Wie sollen wir ein Script debuggen, ohne das Script zu sehen?


als Antwort auf: [#251340]

[Scripting] Tabellen per Script erstellen

MarS
Beiträge gesamt: 18

18. Sep 2006, 11:46
Beitrag # 3 von 5
Beitrag ID: #251376
Bewertung:
(2890 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ups Frage glatt vergessen ;-)

Die Frage ist, ob es wirklich von Adobe so vorgesehen ist, dass die "Columns"-Liste eines Rows nicht nur die Columns der Zeile zurückgibt und wenn ja, wie man das umgehen kann, so dass wirklich nur 3 Zeilen mit 2 Spalten erstellt werden. Und warum werden beim Hinzufügen von 3 Zeilen insgesamt 36 Zellen erstellt?

Hier mal der Code, der vom Script generiert wird (die Eigenschaften habe ich mal rausgenommen weil das ohnehin nur Formatierungssachen sind):

Code
var mySel = app.selection[0]; 
with(mySel.tables.add()) {
with(rows.add()) {
with(columns.add()) {
}
with(columns.add()) {
}
}

with(rows.add()) {
with(columns.add()) {
}
with(columns.add()) {
}
}

with(rows.add()) {
with(columns.add()) {
}
with(columns.add()) {
}
}
}


PS: Verwendete InDesign-Version: CS2


als Antwort auf: [#251361]

[Scripting] Tabellen per Script erstellen

MarS
Beiträge gesamt: 18

19. Sep 2006, 09:30
Beitrag # 4 von 5
Beitrag ID: #251623
Bewertung:
(2852 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich konnte das Problem nun lösen. Und zwar erstellt tables.add bereits eine Tabelle mit 4 Spalten und 4 Zeilen. D.h. man muss die Anzahl der Zeilen (bodyRowCount, headerRowCount, footerRowCount) und der Spalten (columnCount) bereits innerhalb von tables.add angeben und danach statt rows.add über rows.item(index) auf die einzelnen Eigenschaften der Spalten/Zeilen zugreifen.


als Antwort auf: [#251340]

[Scripting] Tabellen per Script erstellen

meerestier
Beiträge gesamt: 277

19. Sep 2006, 12:31
Beitrag # 5 von 5
Beitrag ID: #251704
Bewertung:
(2833 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wenn Du ein verwendbares Script fertigstellst, lass es uns wissen ;-)


als Antwort auf: [#251623]
X