[GastForen Programme Print/Bildbearbeitung Adobe InDesign

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

Absatzformat in Tabelle steuern

Martin Fischer
  
Beiträge gesamt: 12783

19. Nov 2019, 17:45
Bewertung:

gelesen: 12113

Beitrag als Lesezeichen
Ah, jetzt ist's klar.
Schau ich mir darauf hin mal genauer an.

Antwort auf: Ist das Einzel-Tabellen-Skript auch veröffentlicht?


Wahrscheinlich noch nicht.

Aber jetzt.

Code
// applyTableStyle2selectedTable.jsx	   
//DESCRIPTION: Weist der ausgewählten Tabelle ein ausgewähltes Tabellenformat zu und übernimmt aus dem Tabellenformat die Formate für die Körperzellen.

if (app.selection.length == 0)
exit();
var d = app.activeDocument;
var myTableStyle = myDisplayDialog ();
if (myTableStyle == null)
exit();
var t = get_table(app.selection[0]);
if (t == null)
exit();

// --------------------------------------------------------
// Tabellenformat zuweisen
// --------------------------------------------------------
t.appliedTableStyle = myTableStyle;

// Abweichungen vom Tabellenformat löschen
t.clearTableStyleOverrides( true );


// --------------------------------------------------------
// Zellenformate aus Tabellenformat zuweisen
// --------------------------------------------------------
// 1. Tabellenkörperzeilen
t.cells.everyItem().appliedCellStyle = myTableStyle.bodyRegionCellStyle;

// 2. Linke Spalte
if (myTableStyle.leftColumnRegionCellStyle != null)
t.columns[0].cells.everyItem().appliedCellStyle = myTableStyle.leftColumnRegionCellStyle;

// 3. Rechte Spalte
if (myTableStyle.rightColumnRegionCellStyle != null)
t.columns[-1].cells.everyItem().appliedCellStyle = myTableStyle.rightColumnRegionCellStyle;

// 4. Kopf- und Fußzeilen
if (myTableStyle.headerRegionCellStyle != null && t.headerRowCount > 0)
t.rows.itemByRange(0, t.headerRowCount-1).cells.everyItem().appliedCellStyle = myTableStyle.headerRegionCellStyle;
if (myTableStyle.footerRegionCellStyle != null && t.footerRowCount > 0)
{
var r_len = t.rows.length;
t.rows.itemByRange(r_len - t.footerRowCount, r_len -1).cells.everyItem().appliedCellStyle = myTableStyle.footerRegionCellStyle;
}


// Abweichungen vom Zellenformat löschen
t.cells.everyItem().clearCellStyleOverrides( true );


// Dialog zum Erfassen des Tabellenstils
function myDisplayDialog(){
var myDialog = app.dialogs.add({name:"Auswahl Tabellenstil"});
with(myDialog.dialogColumns.add()){
var myTsDropDown = dropdowns.add({stringList: d.tableStyles.everyItem().name, selectedIndex:d.tableStyles.length-1});
}
var myResult = myDialog.show();
if(myResult == true){
var tS = d.tableStyles[myTsDropDown.selectedIndex];
myDialog.destroy();
}
else{
myDialog.destroy();
exit()
}
return tS;
}


//-----------------------------------------------------------------
// Tabelle einer Auswahl innerhalb der Tabelle ermitteln
//-----------------------------------------------------------------
function get_table(_obj)
{
var t = _obj;
if (t.hasOwnProperty('baseline') && t.parent.parent.constructor.name == 'Table')
t = t.parent.parent;
else if (t.constructor.name == 'Cell')
t = t.parent;
else if (t.constructor.name != 'Table')
t = null
return t;
}


(Dieser Beitrag wurde von Martin Fischer am 19. Nov 2019, 17:47 geändert)
Änderungsverlauf:
Beitrag geändert von Martin Fischer (Moderator) am 19. Nov 2019, 17:46
Beitrag geändert von Martin Fischer (Moderator) am 19. Nov 2019, 17:47