//DESCRIPTION: Spaltenbreiten werden von einer markierten Tabelle ausgelesen und auf alle Tabellen, die mit einem bestimmten Tabellenformat formatiert wurden, angewendet. Autor: Karsten Geisler; Kommentare erbeten! design@karsten-geisler.de
//2012-03-30
#target InDesign
var dasIDDokument = app.activeDocument;
var alleObjekte = dasIDDokument.stories.everyItem().getElements();
var dieSelektion = app.selection[0];
//Spaltenbreiten der gewählten Tabellen werden in die Variable aSpaltenbreiten geschrieben
if (dieSelektion == undefined || dieSelektion.constructor.name != 'Table' ) {
alert('Keine Tabelle ausgewählt\rBitte mit dem Textwerkzeug eine komplette Tabelle auswählen und das Script erneut starten.');
exit();
}
else if ( dieSelektion.constructor.name == 'Table') {
var anzahlKolumnenTab1 = dieSelektion.columns.count();
var kolumnennummerTab1= 0;
var aSpaltenbreitenTab1 = new Array ();
for (var kolumnennummerTab1 = 0; kolumnennummerTab1 < anzahlKolumnenTab1; kolumnennummerTab1 ++ ) {
aSpaltenbreitenTab1.push(dieSelektion.columns[kolumnennummerTab1].width);
}
}
//Dialog, damit User das gewünschte Tabellenformat auswählen kann, auf das die augenommenen Spaltenbreiten angewendet werden
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALL;
var dialog = app.dialogs.add();
dialog.name = "Tabellenformat der Auswahl zuweisen";
var dialogCol = dialog.dialogColumns.add();
var dialogText = dialogCol.staticTexts.add();
dialogText = "Wählen Sie ein Tabellenformat aus:";
var dropDownListe = dialogCol.dropdowns.add();
dropDownListe.stringList = app.activeDocument.tableStyles.everyItem().name;
var zeigeDialog = dialog.show();
if (zeigeDialog && dropDownListe.selectedIndex > -1 && app.selection.length == 1) {
var ausgewaehltesTabellenFormat = app.activeDocument.tableStyles[dropDownListe.selectedIndex].name;
}
dialog.destroy();
//Spaltenbreiten werden übertragen
for (var i = 0; i < alleObjekte.length; i++) {
for (var k = 0; k < alleObjekte[i].tables.length; k++) {
if (alleObjekte[i].tables[k].appliedTableStyle.name == ausgewaehltesTabellenFormat) {
var tab2 = alleObjekte[i].tables[k];
var anzahlKolumnenTab2 = tab2.columns.count();
var kolumnenAnzahlMin = Math.min(anzahlKolumnenTab1,anzahlKolumnenTab2) ;
var kolumnennummer = 0;
for (kolumnennummer = 0; kolumnennummer < kolumnenAnzahlMin; kolumnennummer ++ ) {
tab2.columns[kolumnennummer].width = aSpaltenbreitenTab1[kolumnennummer]*1;
}
}
}
}