[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Tabellenübersatz in der Breite auflösen

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

Tabellenübersatz in der Breite auflösen

da-tex
Beiträge gesamt: 67

18. Jul 2012, 11:45
Beitrag # 1 von 3
Bewertung:
(835 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Community,
manchmal habe ich Tabellen in denen Übersatz vorkommt. Nun gibt es zum einen die Möglichkeit die Höhe der Zeile/Zelle auf "Minimal" einzustellen, demzufolge wird die Höhe automatisch angepasst und Wörter ggf. getrennt. Problematisch ist nur, wenn bspw. in dieser Zelle eine lange Zahl steht, welche nicht getrennt wird (zum Glück :), jedoch bleibt dann auch der Übersatz in der Zelle erhalten. Die Idee ist nun die Zelle durch eine "while"-Schleife zu verbreitern, bis der Übersatz hineinpasst (Später kann man ggf. noch einen maximalwert der Zelle angeben, damit nicht 10 Zeilen in eine geschrieben werden und die Zelle "2 Meter" breit ist.).

Dabei ist folgendes entstanden (Prototyp):
Code
var table = app.activeDocument.selection[0]; 
if (table instanceof Table) {
var mycells = table.cells;
for(a=0; a<mycells.length; a++){
if(mycells[a].overflows){
while(mycells[a].overflows){
mycells[a].width++;
alert(mycells[a].width + "\r" +mycells[a].overflows);
}
}
}
}

Der alert dient mir zur Kontrolle ob wirklich die Breite verändert wird. Jedoch aktualisiert sich die Eigenschaft "overflows" nicht, sodass eine Endlosschleife erzeugt wird.

Gibt es eine Möglichkeit der Tabelle mitzuteilen, dass sie sich zwischendurch "aktualisieren" soll?

Im Anhang eine kleine Datei zum testen.

Viele Grüße
Philipp

PS: ausprobiert habe ich es mit InDesign CS5 und CS5.5 unter Windows

(Dieser Beitrag wurde von da-tex am 18. Jul 2012, 11:49 geändert)

Anhang:
tableOverflow.idml (28.3 KB)
X

Tabellenübersatz in der Breite auflösen

Neil77
Beiträge gesamt: 287

18. Jul 2012, 12:40
Beitrag # 2 von 3
Beitrag ID: #498201
Bewertung:
(797 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Philipp,

vielleicht gibt’s noch etwas eleganteres, aber du kannst auf jeden Fall mit:
Code
mycells[a].recompose(); 

nach jedem Vergrößerungsschritt den Text neu berechnen. Damit wird das overflows auch aktualisiert.

Grüße, Martin


als Antwort auf: [#498194]

Tabellenübersatz in der Breite auflösen

da-tex
Beiträge gesamt: 67

18. Jul 2012, 15:40
Beitrag # 3 von 3
Beitrag ID: #498223
Bewertung:
(767 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,
elegant hin oder her, damit lässt sich auf jeden Fall ersteinmal weiter arbeiten, denn das ist genau das, was ich gesucht habe.

Herzlichen Dank,
Philipp


als Antwort auf: [#498201]