[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Tabellenzellen Hintergrund Farbe in RGB konvertieren (CS6, WIN)

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

Tabellenzellen Hintergrund Farbe in RGB konvertieren (CS6, WIN)

cwenet
Beiträge gesamt: 1074

6. Okt 2013, 18:55
Beitrag # 1 von 14
Bewertung:
(4110 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

mit folgendem Script versuche ich allen Tabellenzellen bei denen die Hintergrundfarbe Schwarz verwendet wurde nach RGB zu wandeln:

Code
   var alleZellen = app.documents.firstItem().stories.everyItem().tables.everyItem().cells.everyItem().getElements();   
for ( var i = 0; i < alleZellen.length; i++ ){
if ( alleZellen[i].fillColor.name == "Black" )
alleZellen[i].fillColor.space = ColorSpace.rgb
}


Siehe bitte in angehängtem Dokument.
In der oberen Tabelle sind graue Zellen mit Schwarz in CMYK gefärbt.
Das Soll-Ergebnis zeigt die untere Tabelle. Dort wurde lediglich der Farbraum verändert.
Obiges Script gibt eine Fehlermeldung aus: Diese Farbe kann nicht bearbeitet werden.
Die Farbe selber soll ja unberührt bleiben. Ich wünsche nur einen anderen Farbraum.

Bitte um Hilfe.
Gruss
Christoph

Anhang:
rgb.idml (29.0 KB)
X

Tabellenzellen Hintergrund Farbe in RGB konvertieren (CS6, WIN)

pixxxelschubser
Beiträge gesamt: 1693

6. Okt 2013, 19:18
Beitrag # 2 von 14
Beitrag ID: #518148
Bewertung:
(4094 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo cwenet,
zuerst eine kleine Nachfrage:
Warum nutzt du keine Farbtonfelder?

Meiner Ansicht nach gibt es keine Möglichkeit, den Farbraum einer Zellenfarbe zu ändern.

Am sinnvollsten wird es sein, zuerst ein RGB-Farbfeld anzulegen. Und danach den Farbton deiner Zellfarben auszulesen. Ist diese Farbe == "Black", dann lies den Farbton aus – in etwa so:

Code
   var alleZellen = app.documents.firstItem().stories.everyItem().tables.everyItem().cells.everyItem().getElements();    
for ( var i = 0; i < alleZellen.length; i++ ){
if ( alleZellen[i].fillColor.name == "Black" ) {
alert(alleZellen[i].fillTint)
//alleZellen[i].fillColor.space = ColorSpace.rg
}
}


Hast du einen Treffer, dann ersetze die Hintergrundfarbe mit dem RGB-Schwarz oder dem entsprechenden RGB-Schwarz-Farbtonfeld (das du dann ebenfalls noch anlegen müsstest)

Vielleicht ist das ja ein gangbarer Weg für dich.


als Antwort auf: [#518147]

Tabellenzellen Hintergrund Farbe in RGB konvertieren (CS6, WIN)

Gerald Singelmann
  
Beiträge gesamt: 6260

6. Okt 2013, 19:19
Beitrag # 3 von 14
Beitrag ID: #518149
Bewertung:
(4089 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Die Farbe selber soll ja unberührt bleiben. Ich wünsche nur einen anderen Farbraum.


Dieser Satz ergibt keinen Sinn.
"Am Bundeskanzler soll sich nichts ändern. Sie soll nur Manuela heißen."

Der Farbaum ist eine Eigenschaft der Farbe, nicht der Zelle.
Die Farbe ist dann der Zelle zugewiesen.
Wenn die Zelle RGB sein soll, muss eine (neue) RGB-Farbe erstellt werden, die der Zelle zugewiesen wird.


als Antwort auf: [#518147]

Tabellenzellen Hintergrund Farbe in RGB konvertieren (CS6, WIN)

cwenet
Beiträge gesamt: 1074

6. Okt 2013, 19:47
Beitrag # 4 von 14
Beitrag ID: #518153
Bewertung:
(4063 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Dieser Satz ergibt keinen Sinn.



Danke an Gerald.
Da habe ich mich tatsächlich etwas unglücklich ausgedrückt. :-)

Mit einer neuen Farbe funktioniert es.

Danke auch an pixxxelschubser.

So sieht es jetzt aus:

Code
if (app.documents[0].swatches.itemByName("neueFarbe").isValid != true) { 
var neueFarbe = app.documents[0].colors.add({colorValue: [100, 100,100], space: ColorSpace.RGB, name:'neueFarbe'});
}

var alleZellen = app.documents.firstItem().stories.everyItem().tables.everyItem().cells.everyItem().getElements();
for ( var i = 0; i < alleZellen.length; i++ ){
if ( alleZellen[i].fillColor.name == "Black" ) {
var tint = alleZellen[i].fillTint;
alleZellen[i].fillColor = neueFarbe;
alleZellen[i].fillTint = tint;
}
}


Grund für dieses Vorhaben:
Beim Export nach RTF werden Tabellenzellen mit Hintergrundfarbe "Schwarz" und z.B. 20 % Farbton
in Word dennoch mit 100 % Schwarz angezeigt.


Schönen Abend
Christoph


als Antwort auf: [#518149]
(Dieser Beitrag wurde von cwenet am 6. Okt 2013, 19:50 geändert)

Tabellenzellen Hintergrund Farbe in RGB konvertieren (CS6, WIN)

pixxxelschubser
Beiträge gesamt: 1693

6. Okt 2013, 19:53
Beitrag # 5 von 14
Beitrag ID: #518154
Bewertung:
(4056 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Gut, wenn es jetzt funktioniert.

Und dass du noch bemerkt hast, dass du in der Schleife alle [i] vergessen hattest.

Wink


als Antwort auf: [#518153]
(Dieser Beitrag wurde von pixxxelschubser am 6. Okt 2013, 20:00 geändert)

Tabellenzellen Hintergrund Farbe in RGB konvertieren (CS6, WIN)

cwenet
Beiträge gesamt: 1074

6. Okt 2013, 20:02
Beitrag # 6 von 14
Beitrag ID: #518155
Bewertung:
(4028 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
[quote]... dass du in der Schleife alle [i] vergessen hattest.[/quote]

Wie meinst Du das?
Die [i]s waren doch da.

Oder habe ich etwas übersehen?


als Antwort auf: [#518154]
(Dieser Beitrag wurde von cwenet am 6. Okt 2013, 20:08 geändert)

Tabellenzellen Hintergrund Farbe in RGB konvertieren (CS6, WIN)

pixxxelschubser
Beiträge gesamt: 1693

6. Okt 2013, 20:16
Beitrag # 7 von 14
Beitrag ID: #518157
Bewertung:
(4019 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Eventuell hattest du dein Script vor deiner Änderung nicht im Code-Tag eingeschlossen. Dann interpretiert die Forensoftware das [i] als Beginn für kursive Formatierung.

(Um das zu umgehen kann man dem i aber einen Punkt voranstellen. Um ein [i] zu erhalten muss man im normalen Text also [.i] schreiben. Ansonsten verschwindet das [i] und der nachfolgende Text wird kursiv.)


als Antwort auf: [#518155]

Tabellenzellen Hintergrund Farbe in RGB konvertieren (CS6, WIN)

cwenet
Beiträge gesamt: 1074

6. Okt 2013, 20:19
Beitrag # 8 von 14
Beitrag ID: #518158
Bewertung:
(4013 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ah ja, merci.
Habs gerade beim Zitieren gemerkt und habe deshalb auf Textversion umgestellt.

Schönen Abend
Christoph


als Antwort auf: [#518157]

Tabellenzellen Hintergrund Farbe in RGB konvertieren (CS6, WIN)

Gerald Singelmann
  
Beiträge gesamt: 6260

6. Okt 2013, 20:41
Beitrag # 9 von 14
Beitrag ID: #518159
Bewertung:
(3985 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
HDS ist Schuld, dass ich konsequent dazu übergegangen bin, n als Laufvariable zu benutzen.


als Antwort auf: [#518158]

Tabellenzellen Hintergrund Farbe in RGB konvertieren (CS6, WIN)

pixxxelschubser
Beiträge gesamt: 1693

6. Okt 2013, 21:52
Beitrag # 10 von 14
Beitrag ID: #518160
Bewertung:
(3942 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wink


als Antwort auf: [#518159]

Tabellenzellen Hintergrund Farbe in RGB konvertieren (CS6, WIN)

Kai Rübsamen
Beiträge gesamt: 4664

6. Okt 2013, 22:13
Beitrag # 11 von 14
Beitrag ID: #518162
Bewertung:
(3926 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Christoph, bist du dir sicher, dass dein Skript funktioniert? ;-)

Wenn ich mir die exportiere RTF-Variante in Word anschaue, wird dein zugewiesener Farbton bei mir ignoriert und alle Felder mit Ausnahme von dem unten links (unbenanntes Farbfeld) werden wohl als 100/100/100 exportiert.

Bei deiner Variante unten hast du generell unbenannte Farben.


als Antwort auf: [#518160]

Tabellenzellen Hintergrund Farbe in RGB konvertieren (CS6, WIN)

cwenet
Beiträge gesamt: 1074

8. Okt 2013, 18:07
Beitrag # 12 von 14
Beitrag ID: #518231
Bewertung:
(3793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

bei mir tut es, wie gewünscht.
Es geht um die obere Tabelle. Wenn ich einen RTF-Export ohne das Script mache,
werden die Zellen (bis auf unten links) in Word 2010 Schwarz gefärbt, so dass
der Text nicht mehr lesbar ist.

Nach dem Script hat die obere Tabelle in allen Zellen die Farbe 100,100,100 (bis auf unten links). Nach dem Export ist dann auch der Text in Word 2010 lesbar.
Der Trick dabei war, dass ich RGB verwende.

Gruss
Christoph


als Antwort auf: [#518162]

Tabellenzellen Hintergrund Farbe in RGB konvertieren (CS6, WIN)

Kai Rübsamen
Beiträge gesamt: 4664

8. Okt 2013, 19:02
Beitrag # 13 von 14
Beitrag ID: #518232
Bewertung:
(3776 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

ich wusste nicht, dass es dir NICHT auf die unterschiedlichen Farbtöne ankommt. Dann haben wir das gleiche Ergebnis.

Antwort auf: Der Trick dabei war, dass ich RGB verwende.

Ich sag mal vorsichtig: Das glaub ich nicht ;-)

Beweis: In deinem Druckdokument unter Dokument einrichten von Druck auf Web umstellen. Das macht aus CMYK-Schwarz > RGB-Schwarz. Wenn ich hier nach RTF exportiere, ist das nicht die Lösung.

Du hast ganz simpel eine hellere Farbe zugewiesen. Dein zugewiesener Farbton kommt dabei auch nicht im Word-Dokument an. Der Farbraum, also ob RGB oder CMYK scheint egal.

Mir fallen ansonsten noch ein zwei Kleinigkeiten in deinem Code auf. Ich hoffe, ich als Anfänger darf das sagen ;-) Ich wäre jedenfalls froh über jede Verbesserung …

1. Du schreibst mal app.documents[0] und mal 'app.documents.firstItem()', mal 'neueFarbe' oder "Black"

2. Du prüfst am Anfang, ob neueFarbe vorhanden ist. Falls nicht, legst du die Farbe an und gibst das Ergebnis in die Variable. Ist die Farbe aber bereits im Dokument, rennt das Skript in einen Fehler, da es die Variable dann nicht gibt!

Code
var dok = app.documents[0]; 

if (!dok.swatches.item("neueFarbe").isValid) {
var neueFarbe = dok.colors.add({colorValue: [100, 100,100], space: ColorSpace.RGB, name: "neueFarbe"});
}
else {
var neueFarbe = dok.swatches.item("neueFarbe");
}

var alleZellen = dok.stories.everyItem().tables.everyItem().cells.everyItem().getElements();
for ( var n = 0; n < alleZellen.length; n++ ){
var aktuelleZelle = alleZellen[n];
if ( aktuelleZelle.fillColor.name == "Black" ) {
var tint = aktuelleZelle.fillTint;
aktuelleZelle.fillColor = neueFarbe;
aktuelleZelle.fillTint = tint;
}
}



als Antwort auf: [#518231]

Tabellenzellen Hintergrund Farbe in RGB konvertieren (CS6, WIN)

cwenet
Beiträge gesamt: 1074

8. Okt 2013, 19:16
Beitrag # 14 von 14
Beitrag ID: #518234
Bewertung:
(3770 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

vielen Dank für die Anpassung des Scripts.
Ich habe es garnicht richtig auf genaue Korrektheit überprüft.

In der Tat, wollte ich nur die Grauwerte für das RTF in etwa simulieren, damit auch der Text
In den Zellen lesbar ist.

Schönen Abend
Christoph


als Antwort auf: [#518232]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
01.12.2022

Online
Donnerstag, 01. Dez. 2022, 10.00 - 10.45 Uhr

Webinar

Die drei ColorLogic-Programme ZePrA, CoPrA und ColorAnt sind in neuen Versionen mit vielen neuen Funktionen im Jahr 2022 veröffentlich worden oder werden in Kürze veröffentlicht (ColorAnt 9). In unserem ca. 45 minütigen kostenlosen Webinar zeigen wir Ihnen einige dieser neuen Funktionen mit dem Schwerpunkt auf Automatisierung und Produktivitätssteigerungen.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=311

ColorLogic Update-Webinar ZePrA 10, CoPrA 9 und ColorAnt 9
Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/