hilfdirselbst.ch
Facebook Twitter gamper-media
Klaus79 S
Beiträge: 287
7. Apr 2010, 12:04
Beitrag #1 von 12
Bewertung:
(6133 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Linienstärke in Tabellen ändern


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
Top
 
X
Gerald Singelmann  M  p
Beiträge: 6169
7. Apr 2010, 14:26
Beitrag #2 von 12
Beitrag ID: #438559
Bewertung:
(6074 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Linienstärke in Tabellen ändern


Sie könnten das verwendete Zellenformat ändern ;)
als Antwort auf: [#438550] Top
 
Gerald Singelmann  M  p
Beiträge: 6169
7. Apr 2010, 14:36
Beitrag #3 von 12
Beitrag ID: #438560
Bewertung: |
(6073 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Linienstärke in Tabellen ändern


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

--------------------------

InDesign-Wissen und Automatisierung nicht nur rund um die Suite.

http://www.cuppascript.com
als Antwort auf: [#438559] Top
 
Klaus79 S
Beiträge: 287
7. Apr 2010, 15:19
Beitrag #4 von 12
Beitrag ID: #438570
Bewertung:
(6042 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Linienstärke in Tabellen ändern


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
als Antwort auf: [#438560] Top
 
JoPo S
Beiträge: 453
5. Jul 2017, 14:08
Beitrag #5 von 12
Beitrag ID: #558462
Bewertung:
(2401 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Linienstärke in Tabellen ändern


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
als Antwort auf: [#438560] Top
 
Uwe Laubender S
Beiträge: 3919
5. Jul 2017, 16:58
Beitrag #6 von 12
Beitrag ID: #558465
Bewertung:
(2356 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Linienstärke in Tabellen ändern


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
als Antwort auf: [#558462] Top
 
JoPo S
Beiträge: 453
7. Jul 2017, 11:02
Beitrag #7 von 12
Beitrag ID: #558491
Bewertung:
(2203 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Linienstärke in Tabellen ändern


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
als Antwort auf: [#558465]
(Dieser Beitrag wurde von Martin Fischer am 7. Jul 2017, 12:12 geändert)
Top
 
Martin Fischer  M  p
Beiträge: 11753
7. Jul 2017, 12:18
Beitrag #8 von 12
Beitrag ID: #558493
Bewertung:
(2187 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Linienstärke in Tabellen ändern


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
als Antwort auf: [#558491]
(Dieser Beitrag wurde von Martin Fischer am 7. Jul 2017, 12:19 geändert)
Top
 
Martin Fischer  M  p
Beiträge: 11753
7. Jul 2017, 12:35
Beitrag #9 von 12
Beitrag ID: #558495
Bewertung:
(2178 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Linienstärke in Tabellen ändern


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
als Antwort auf: [#558491]
(Dieser Beitrag wurde von Martin Fischer am 7. Jul 2017, 13:36 geändert)
Top
 
JoPo S
Beiträge: 453
7. Jul 2017, 13:15
Beitrag #10 von 12
Beitrag ID: #558501
Bewertung:
(2165 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Linienstärke in Tabellen ändern


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
als Antwort auf: [#558493] Top
 
JoPo S
Beiträge: 453
7. Jul 2017, 13:25
Beitrag #11 von 12
Beitrag ID: #558505
Bewertung:
(2162 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Linienstärke in Tabellen ändern


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
als Antwort auf: [#558495] Top
 
Martin Fischer  M  p
Beiträge: 11753
7. Jul 2017, 13:39
Beitrag #12 von 12
Beitrag ID: #558507
Bewertung:
(2154 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Linienstärke in Tabellen ändern


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
als Antwort auf: [#558505] Top
 
X