[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Tables in CS2 (oder grundsätzlich: Scripting und CS2)

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

Tables in CS2 (oder grundsätzlich: Scripting und CS2)

SamiSalami
Beiträge gesamt: 66

6. Nov 2010, 10:42
Beitrag # 1 von 3
Bewertung:
(1028 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo ihr Lieben :-)

Ich hab auch mal wieder was.
Und zwar habe ich ein eher spezielles Skript, welches folgende Dinge tut:
- leere Zeilen löschen
- Text in Textframes die in einer Zelle verankert sind wird in die Zelle kopiert, das Textframe gelöscht (zusätzlich wird der Zelle ein Rahmen verpasst und ein Pfeil vor jedem Absatz platziert - wenn es mehr als einen Absatz gibt)

Nunja, aus gewissen Gründen muss dieses Skript nun leider auch in CS2 durchrattern.
Es läuft auch tatsächlich durch ohne Fehlermeldung nur tun tut er auch nix, was mich auf eine andere Objektstruktur schließen ließ - so dass er einfach "nichts" findet.

Ich habe also mal in CS2 ein wenig rumselektiert und habe jetzt keine drastischen Unterschiede gefunden, allerdings ist mir aufgefallen, dass selbst wenn ich eine Zeile markiere, er immer noch das Objekt Cell mir ausgibt und nicht Row - wie ich es erwartet hätte.
Allerdings kann es ja unmöglich sein, dass es in CS2 eine Rows gegeben hat, also liegt der Hund wahrscheinlich woanders begraben.

Anschließend das Skript,
vllt kann ja der ein oder andere mit CS2-Kenntnissen aufwarten, die ich leider nicht habe.

Code
// Deletes empty rows and writes content of textframes in parent cell 
// Not for common usage fits specified layout!

var myDoc = app.activeDocument;
var myStories = myDoc.stories;

for (var i=0; i < myStories.length; i++){
var myTables = myStories[i].tables;

for (var x=0; x < myTables.length; x++){

var myRows = myTables[x].rows;

for ( var y = 0; y < myRows.length; y++){

var myCells = myRows[y].cells;

for (var z=0; z < myCells.length; z++){

var myTextframes = myCells[z].textFrames;

for (var a=0; a < myTextframes.length; a++){

if (myTextframes[a].contents == "" || myTextframes[a].contents == "undefined"){

myTextframes[a].remove();
break;

}
myParagraphs = myTextframes[a].paragraphs;

if (myParagraphs.length > 1){

var myContent = "";

for (var b=0; b < myParagraphs.length; b++){

if (myParagraphs[b].words[0].contents != "->"){

myParagraphs[b].insertionPoints[0].contents = "-> ";

}
var myContent = myContent + myParagraphs[b].contents;

}
if (myContent != "" && myContent != "undefined"){
myCells[z].contents = myContent;
myCells[z].bottomEdgeStrokeWeight = 1;
myCells[z].topEdgeStrokeWeight = 1;
myCells[z].leftEdgeStrokeWeight = 1;
myCells[z].rightEdgeStrokeWeight = 1;
myCells[z].bottomEdgeStrokeColor = myDoc.colors.item("Black");
myCells[z].topEdgeStrokeColor = myDoc.colors.item("Black");
myCells[z].leftEdgeStrokeColor = myDoc.colors.item("Black");
myCells[z].rightEdgeStrokeColor = myDoc.colors.item("Black");
}
}

}
}

if (myRows[y].contents == ""){

myRows[y].remove();

}
}
}
}


Achja und noch eine Frage nebenbei:
Die Geschichte mit den Farben, macht mich echt ein wenig irre,
weil ich dazu nicht wirklich was gefunden habe.
Sind dort auch Hexadezimal- oder RGB-Werte möglich?
Bzw, wenn nicht, welche Farben gibt es?

Vielen Dank im Vorraus und liebe Grüße,
Sami

PS:
Für (konstruktive) Verbesserungsansätze wenn sonstige Dinge auffallen, bin ich natürlich auch immer gern zu haben.

(Dieser Beitrag wurde von SamiSalami am 6. Nov 2010, 10:42 geändert)
X

Tables in CS2 (oder grundsätzlich: Scripting und CS2)

SamiSalami
Beiträge gesamt: 66

6. Nov 2010, 11:38
Beitrag # 2 von 3
Beitrag ID: #456174
Bewertung:
(1008 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Okay, wie es immer so ist:
Sobald ich mit der Frage raushau - find ich die Lösung.

Es ging hierbei nur um einen Denkfehler.
Augenscheinlich leere Zeile haben natürlich auch noch Zellen und sind daher nicht leer und werden daher nicht gelöscht.
Da leere Zellen aber nicht einzeln gelöscht werden dürfen, muss ich nun was schrauben, das überprüft ob alle Zellen einer Zeile leer sind und anschließend die Zeile löscht.

Tut mir leid,
hoffe der Post kann auf irgendeine erdenkliche Weise trotzdem nochmal einer Seele da draußen helfen :-)


als Antwort auf: [#456169]

Tables in CS2 (oder grundsätzlich: Scripting und CS2)

Uwe Laubender
Beiträge gesamt: 5293

6. Nov 2010, 14:56
Beitrag # 3 von 3
Beitrag ID: #456180
Bewertung:
(982 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, SamiSalami!

Wegen Hex-Zahlen kannst Du Dir mal folgenden Beitrag auf inDesign-Secrets anschauen:

http://indesignsecrets.com/...active-documents.php

Hinzu kommt noch ein ausführlicher Kommentar von Harbs:

http://in-tools.com/...swatches-in-indesign


als Antwort auf: [#456174]