Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » Linienstärke in Tabellen ändern

Linienstärke in Tabellen ändern

Klaus79
Beiträge gesamt: 341

7. Apr 2010, 12:04
Bewertung:

gelesen: 13419

Beitrag als Lesezeichen
Hallo,
gibt es eine Möglichkeit im gesamten Dokument
alle Tabellenlinien der Stärke 0,25 in 0,3 pt zu wandeln?
(es sind auch noch andere Tabellen-Linienstärken vorhanden).

Ich habe bisher über Suchen/Ersetzen (Text + Objekt)
kein Ergebnis bekommen. Habe ich da was übersehen oder
kann InDesign das nicht?

Gruß
Klaus

Linienstärke in Tabellen ändern

Gerald Singelmann
  
Beiträge gesamt: 6269

7. Apr 2010, 14:26
Bewertung:

gelesen: 13360

Beitrag als Lesezeichen
Sie könnten das verwendete Zellenformat ändern ;)

Linienstärke in Tabellen ändern

Gerald Singelmann
  
Beiträge gesamt: 6269

7. Apr 2010, 14:36
Bewertung: |

gelesen: 13359

Beitrag als Lesezeichen
Ansonsten in beiliegendem Script die gewünschten Jetzt und Gleich Werte ändern.

Anhang:
tabellenKonturenStärkeÄndern.jsx.zip (0.55 KB)

Linienstärke in Tabellen ändern

Klaus79
Beiträge gesamt: 341

7. Apr 2010, 15:19
Bewertung:

gelesen: 13328

Beitrag als Lesezeichen
Wow!
Hallo Gerald, das ist ja ein SuperScript!

Bei 8 Dokumenten mit je 50 Tabellen hat's mir die Schweissperlen
ins Gesicht getrieben. Funzt 1a.
Vielen Dank dafür ...!

Gruß
Klaus

Linienstärke in Tabellen ändern

JoPo
Beiträge gesamt: 534

5. Jul 2017, 14:08
Bewertung:

gelesen: 9687

Beitrag als Lesezeichen
Hallo Gerald,

leider kann ich dieses Script unter CC2015 nicht nutzen.
Hast du schon eine neue Version erstellt?
Bei mir gibt es eine Fehlermeldung mit Bezug auf Zeile 24

Salü und Danke
Joachim

Linienstärke in Tabellen ändern

Uwe Laubender
Beiträge gesamt: 5316

5. Jul 2017, 16:58
Bewertung:

gelesen: 9642

Beitrag als Lesezeichen
Hallo Joachim,

nichts spricht dagegen, Geralds Skript mit InDesign CC 2015 zu nutzen.
Die verwendeten Eigenschaften haben sich nicht geändert.

Welche Fehlermeldung genau wird bei Dir geworfen?

Gibt's vielleicht Besonderheiten in Deiner Datei?
Versuchst Du vielleicht einen Wert zuzuweisen, der nicht abbildbar ist?
Was konkret steht bei Dir in den Zeilen 7 und 8 ?
*****
Mit herzlichem Gruß,
Uwe Laubender

Linienstärke in Tabellen ändern

JoPo
Beiträge gesamt: 534

7. Jul 2017, 11:02
Bewertung:

gelesen: 9489

Beitrag als Lesezeichen
Hallo Uwe,

vielen Dank für deinen Denkanstoß.

Ich hatte bei der Aktivierung des Scriptes ein Eingabemenu erwartet.
Kommt aber nicht. Ich muss direkt im Script die Werte der Linien vorher und nachher eintragen. Dann klappt es.
Aber … die Fehlermeldung kommt trotz korrekter, dokumentweiter Ausführung, dennoch. Im Anhang ein Sreenshot der Meldung.

Also: Linien werden wie gewünscht verändert, dennoch gibt es eine Meldung.

Und nun die Preisfrage: Kann das Script (ohne gigantischen Aufwand) so verändert werden dass es nur auf die markierte Tabelle wirkt?

Hier der Code von Gerald:

Code
//DESCRIPTION:Ändert Zellenkonturenstärke von einem "Jetzt" in einen "Gleich"-Wert 

main();

function main() {

jetzt = 0.30;
gleich = 0.50;

var doc = app.activeDocument;
var stories = doc.stories;
for (var s = 0; s < stories.length; s++) {
var tables = stories[s].tables;
if (tables != undefined) {
for (var t = 0; t < tables.length; t++) {
var cells = tables[t].cells;
for (var c = 0; c < cells.length; c++) {
if (cells[c].topEdgeStrokeWeight == jetzt) {
cells[c].topEdgeStrokeWeight = gleich;
}
if (cells[c].leftEdgeStrokeWeight == jetzt) {
cells[c].leftEdgeStrokeWeight = gleich;
}
if (cells[c].bottomEdgeStrokeWeight == jetzt) {
cells[c].bottomEdgeStrokeWeight = gleich;
}
if (cells[c].rightEdgeStrokeWeight == jetzt) {
cells[c].rightEdgeStrokeWeight = gleich;
}
}
}
}
}
}



Salü
Joachim

(Dieser Beitrag wurde von Martin Fischer am 7. Jul 2017, 12:12 geändert)

Anhang:
Bildschirmfoto 2017-07-07 um 10.51.57.png (34.1 KB)

Linienstärke in Tabellen ändern

Martin Fischer
  
Beiträge gesamt: 12779

7. Jul 2017, 12:18
Bewertung:

gelesen: 9473

Beitrag als Lesezeichen
Hallo Joachim,

möglicherweise stören verbundene Zellen.

Am schnellsten könntest Du Abhilfe mit try-catch-Klammern um die Abfragen schaffen.

Z.B.
Code
try  
{
if (cells[c].bottomEdgeStrokeWeight == jetzt)
{
cells[c].bottomEdgeStrokeWeight = gleich;
}
}
catch(e)
{
/*hier z.B. Fehler in einem Error-Array sammeln: _error.push(e.msg) */
}


Viele Grüße
Martin



(Dieser Beitrag wurde von Martin Fischer am 7. Jul 2017, 12:19 geändert)

Linienstärke in Tabellen ändern

Martin Fischer
  
Beiträge gesamt: 12779

7. Jul 2017, 12:35
Bewertung:

gelesen: 9464

Beitrag als Lesezeichen
Antwort auf: Und nun die Preisfrage: Kann das Script (ohne gigantischen Aufwand) so verändert werden dass es nur auf die markierte Tabelle wirkt?


Hier ein Beispiel:
Code
//DESCRIPTION:Ändert Zellenkonturenstärke von einem "Jetzt" in einen "Gleich"-Wert  

main();

function main() {

jetzt = 0.30;
gleich = 0.50;

var doc = app.activeDocument;
var _error = new Array;
if (app.selection.length > 0)
{
var t = get_table(app.selection[0])
if (t == null)
{
alert('Bitte Cursor in einer Tabellenzelle platzieren.')
exit();
}
else
{
var cells = t.cells;
for (var c = 0; c < cells.length; c++)
{
try
{

if (cells[c].topEdgeStrokeWeight == jetzt)
{
cells[c].topEdgeStrokeWeight = gleich;
}
}
catch(e)
{
_error.push(e)
}

try
{
if (cells[c].leftEdgeStrokeWeight == jetzt)
{
cells[c].leftEdgeStrokeWeight = gleich;
}
}
catch(e)
{
_error.push(e)
}

try
{
if (cells[c].bottomEdgeStrokeWeight == jetzt)
{
cells[c].bottomEdgeStrokeWeight = gleich;
}
}
catch(e)
{
_error.push(e)
}

try
{
if (cells[c].rightEdgeStrokeWeight == jetzt)
{
cells[c].rightEdgeStrokeWeight = gleich;
}
}
catch(e)
{
_error.push(e)
}
}
}
if (_error.length > 0)
alert('Achtung!\n' + _error.join('\n'));
}


//-----------------------------------------------------------------------------
// Tabelle anhand 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;
}
}


Statt der try-catch Klammer könntest Du freilich auch abfragen, ob die jeweilige Zelle nicht etwa mit einer störenden Zellverbindung belegt ist.

Oder Du könntest statt einer Schleife durch alle Zellen der Tabelle zwei Schleifen anlegen:
1. Schleife durch alle Spalten (oder Reihen)
2. Schleife durch alle Zellen der Spalten (oder Reihen)
Möglicherweise stören Zellverbindungen von über die Spalten (Reihen) adressierten Zellen dann nicht - käme auf einen Versuch an.

Viele Grüße
Martin



(Dieser Beitrag wurde von Martin Fischer am 7. Jul 2017, 13:36 geändert)

Linienstärke in Tabellen ändern

JoPo
Beiträge gesamt: 534

7. Jul 2017, 13:15
Bewertung:

gelesen: 9451

Beitrag als Lesezeichen
Hallo Martin,

es gibt in der Tabelle viele unterschiedlich verbundene Zellen. Und die Umrandungen sind genauso vielfältig. Aber die Umwandlung NUR der wirklich vorhandenen Linien hat wunderbar funktionert. Es wurden keine neuen Linien angelget.

Dein Angepasstes Script probiere ich nachher mal aus.
Besten Dank dafür.

Salü
Joachim

Linienstärke in Tabellen ändern

JoPo
Beiträge gesamt: 534

7. Jul 2017, 13:25
Bewertung:

gelesen: 9448

Beitrag als Lesezeichen
Hallo Martin,

dein angepasstes Script funktioniert bei meinen Tabellen wunderbar. Und es gibt keine abschließende Meldung jedweder Art.

Danke dass du deine Zeit dafür eingesetzt hast.

Salü
Joachim

Linienstärke in Tabellen ändern

Martin Fischer
  
Beiträge gesamt: 12779

7. Jul 2017, 13:39
Bewertung:

gelesen: 9440

Beitrag als Lesezeichen
Hallo Joachim,

hab Dank für Deine schnelle und positive Rückmeldung.

Der Code mit den try-catch Klammern schreit nach weiterer Vereinfachung.
Aber das ist stets mit einem gewissen Aufwand verbunden. ;-)

Viele Grüße
Martin