Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » Tabelle – per Script ein Zellenformat anwenden

Tabelle – per Script ein Zellenformat anwenden

GWE
Beiträge gesamt: 31

27. Sep 2013, 13:23
Bewertung:

gelesen: 3890

Beitrag als Lesezeichen
Hallo zusammen,

ich hoffe ihr könnt mir weiterhelfen.

Ich suche nach einer Möglichkeit per Script in einem Dokument mit ca. 350 Seiten
in allen Tabellen des Dokuments nach bestimmten Zellen zu suchen und ein bestimmtes Zellenformat anzuwenden.
Die gesuchten Zellen enthalten alle Text der immer das selbe Absatzformat hat.

Hintergrund ist, aktuell haben alle Tabellen im Dokument keine aktiven Tabellen- oder Zellformate
allerdings sollen künftig alle Zellen mit dem entsprechend formatierten Text
einen farbigen Zellhintergrund bekommen und neu formatiert werden.


Viele Grüße
GWE

Tabelle – per Script ein Zellenformat anwenden

Uwe Laubender
Beiträge gesamt: 5316

27. Sep 2013, 15:16
Bewertung:

gelesen: 3861

Beitrag als Lesezeichen
Hallo, GWE!

Wie definierst Du "bestimmte Zellen"?
Wenn Du das konkret beantworten kannst, kann Dir auch weitergeholfen werden…
*****
Mit herzlichem Gruß,
Uwe Laubender

Tabelle – per Script ein Zellenformat anwenden

Kai Rübsamen
  
Beiträge gesamt: 4684

27. Sep 2013, 15:33
Bewertung:

gelesen: 3845

Beitrag als Lesezeichen
Uwe, ich bin hier für ein konkretes Beispiel, vorher / nachher. Was sollen wir uns hier noch die Beispiele selber bauen …

Gruß Kai Rübsamen

Tabelle – per Script ein Zellenformat anwenden

GWE
Beiträge gesamt: 31

27. Sep 2013, 15:37
Bewertung:

gelesen: 3840

Beitrag als Lesezeichen
Hallo Herr Laubender,

wie oben beschrieben ist der einzige Anhaltspunkt den es gibt das Absatzformat des Texts in der Zelle.

Das Absatzformat heißt "KIT_Dimension".


Gruß GWE

Tabelle – per Script ein Zellenformat anwenden

Kai Rübsamen
  
Beiträge gesamt: 4684

27. Sep 2013, 17:59
Bewertung:

gelesen: 3788

Beitrag als Lesezeichen
GWE, das Beispiele bauen hat hier jetzt zwar nur zwei Min. gedauert. Für die Zukunft mach doch bitte einen Screen oder im Idealfall eine .idml.

Versuch mal bitte Folgendes u. Rückmeldung.

Code
main () 

function main() {

// das aktuelle Dokument
var curDoc = app.documents[0];
// der Absatzformatname
var pStyleName = "KIT_Dimension";
// der Zelllenformatname
var cStyleName = "meinZellenformat";

// prüfen, ob das Absatzformat vorhanden ist
var pStyle = curDoc.paragraphStyles.itemByName(pStyleName);
if (!pStyle.isValid) {
alert ("Du hast kein Absatzformat");
exit();
}

// prüfen, ob das Zellfenormat vorhanden ist
var cStyle = curDoc.cellStyles.item(cStyleName);
if (!cStyle.isValid) {
alert ("Du hast kein Zellenformat");
exit();
}

// die Suche vorbereiten
app.findGrepPreferences = app.changeGrepPreferences = null;
app.findGrepPreferences.appliedParagraphStyle = pStyleName;
var fund = curDoc.findGrep();
app.findGrepPreferences = app.changeGrepPreferences = null;

// dem Elternelement der Fundstelle (der Zelle) das Format zuweisen
for (var f=0; f<fund.length; f++) {
var curCell = fund[f].parent;
curCell.appliedCellStyle = cStyle;
}
}


Gruß Kai Rübsamen

(Dieser Beitrag wurde von Kai Rübsamen am 27. Sep 2013, 18:00 geändert)

Tabelle – per Script ein Zellenformat anwenden

GWE
Beiträge gesamt: 31

30. Sep 2013, 12:49
Bewertung:

gelesen: 3627

Beitrag als Lesezeichen
Hallo Kai,

super danke .. genau das habe ich gesucht!

Eine Frage habe ich aber noch.
Wie muss ich das Absatzformat in der Variablen angeben wenn ich die Absatzformate in Ordnern strukturiert habe?

Ich werde mir euren Hinweis zu Herzen nehmen und künftig versuchen ein konkretes Beispiel mitzuliefern.

Gruß GWE

Tabelle – per Script ein Zellenformat anwenden

Kai Rübsamen
  
Beiträge gesamt: 4684

30. Sep 2013, 16:08
Bewertung:

gelesen: 3599

Beitrag als Lesezeichen
Hallo GWE,

dann musst du auch den Ordner angeben. Da ich vorher prüfe, ob das Format überhaupt vorhanden ist, wäre das an zwei Stellen der Fall > in Zeile 15 u. 30.

Ich habe die entsprechende Variable schon angelegt: Also einfach in Zeile 10 den Namen deiner Gruppe eintragen u. dann sollte es schon passen:

Code
main ()  

function main() {

// das aktuelle Dokument
var curDoc = app.documents[0];
// der Absatzformatname
var pStyleName = "Test";
// die Formatgruppe
var pGroup = "MeineGruppe";
// der Zelllenformatname
var cStyleName = "MeinZellenformat";

// prüfen, ob das Absatzformat vorhanden ist
var pStyle = curDoc.paragraphStyleGroups.itemByName(pGroup).paragraphStyles.itemByName(pStyleName);
if (!pStyle.isValid) {
alert ("Du hast kein Absatzformat");
exit();
}

// prüfen, ob das Zellfenormat vorhanden ist
var cStyle = curDoc.cellStyles.item(cStyleName);
if (!cStyle.isValid) {
alert ("Du hast kein Zellenformat");
exit();
}

// die Suche vorbereiten
app.findGrepPreferences = app.changeGrepPreferences = null;
app.findGrepPreferences.appliedParagraphStyle = curDoc.paragraphStyleGroups.itemByName(pGroup).paragraphStyles.itemByName(pStyleName);;
var fund = curDoc.findGrep();
app.findGrepPreferences = app.changeGrepPreferences = null;

// dem Elternelement der Fundstelle (der Zelle) das Format zuweisen
for (var f=0; f<fund.length; f++) {
var curCell = fund[f].parent;
curCell.appliedCellStyle = cStyle;
}
}


Gruß Kai Rübsamen

Tabelle – per Script ein Zellenformat anwenden

GWE
Beiträge gesamt: 31

1. Okt 2013, 13:32
Bewertung:

gelesen: 3551

Beitrag als Lesezeichen
Hallo Kai,

ich dachte vllt. reicht es ja auch schon einfach den Gruppennamen voranzustellen.
z.B. "MeineGruppe:Absatzformat" oder "MeineGruppe\Absatzformat"

Aber mit der Variblen ist es natürlich Perfekt.

Nochmals danke für deine Hilfe.

Gruß GWE