[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Unbenannte Farben (anlegen/filtern)

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

Unbenannte Farben (anlegen/filtern)

painschen
Beiträge gesamt: 48

10. Mär 2010, 18:03
Beitrag # 1 von 8
Bewertung:
(2897 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Abend,

ich versuche (eigentlich mit Erfolg) unbenannte RGB Farbfelder anlegen zu lassen.

Hierzu prüfe ich als erstes alle aktuellen Farbfelde nach dem Farbraum und wandle diese dann ggbf. in CMYK um.

Anschließend lasse ich über nachfolgendes Skript alle Objektelemente nach RGB Farben prüfen und lasse diese anlegen und wandle Sie um.

Klappt eigentlich - es gib aber Seiten, bei denen er die RGB Farbe im Element nicht erkennt..

Woran kann das liegen?


Code
var myDocument = app.activeDocument; 
var mySwatches = myDocument.swatches;
var myColors = myDocument.colors;
var myItems = myDocument.pageItems;

var hiddenFillColorsCounter = 0;

// füllfarbe prüfen
for(var i= 0; i<myItems.length; i++){
var zufallf = "Unbenannte Füllfarbe "+i;
myObject = myItems[i];
try {
// bei RGB neues Farbfeld anlegen und diesem Objekt auch zuweisen
if (myObject.fillColor.space != ColorSpace.cmyk) {
var myNewColor = myDocument.colors.add({
name: zufallf,
colorValue: myObject.fillColor.colorValue
});
myObject.fillColor=myDocument.colors.item(zufallf);
hiddenFillColorsCounter++;
}
}
catch (bug) {
bug = null;
}
}


Kann es am myDocument.pageItems liegen? Aber eigentlich macht das keinen Sinn, da ich auf keiner anderen Seite Probleme hatte..(unter pageItems fallen ja alle Objekte wie Rechteck, Textfelder usw.. oder??)

Mir ist aufgefallen, dass dieser Fehler bei der aktuellen Seite bei einem duplizierem Objekte auftritt (welches aber untersch. Farben hat)..

gecatchte Fehler:
-> "Der Inhalt dieses Objektes hat mehrere Werte für das Grafikattribut".. (hö??)
-> "Die Eigenschaft SPACE ist für dieses Objekt nicht gültig"

Ich steh voll auf dem Schlauch.. wieso geht es wenn ich diese zwei Objekte/Textrahmen einzeln prüfen lasse?

p.s. ups wollt das ganze in die Skript-Werkstatt posten, sorry

(Dieser Beitrag wurde von painschen am 10. Mär 2010, 18:06 geändert)
X

Unbenannte Farben (anlegen/filtern)

Gerald Singelmann
  
Beiträge gesamt: 6269

10. Mär 2010, 19:25
Beitrag # 2 von 8
Beitrag ID: #435997
Bewertung:
(2861 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
document.pageItems schaut nicht in verschachtelte Objekte. Wenn also etwas innen eingefügt wurde oder Sie mit Gruppen arbeiten, müssen Sie deren Inhalte rekursiv erfassen.


als Antwort auf: [#435985]

Unbenannte Farben (anlegen/filtern)

Martin Fischer
  
Beiträge gesamt: 12783

10. Mär 2010, 20:23
Beitrag # 3 von 8
Beitrag ID: #436002
Bewertung:
(2855 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Wenn also etwas innen eingefügt wurde oder Sie mit Gruppen arbeiten,
> müssen Sie deren Inhalte rekursiv erfassen.

Oder mit document.allPageItems.


als Antwort auf: [#435997]

Unbenannte Farben (anlegen/filtern)

painschen
Beiträge gesamt: 48

11. Mär 2010, 01:58
Beitrag # 4 von 8
Beitrag ID: #436032
Bewertung:
(2830 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Beide Hinweise haben mir im Allgemeinen geholfen, für das o.g. Problem allerdings leider nicht..

Wieso bekomme ich die Fehlermelduing, dass .space nicht auf CMYK prüfen kann und das die Farbwerte ungültig sind?

Ich vermute, dass es eventl. mit den "Farben außerhalb des Druckbereichs" zusammenhängt..

Sprich: wenn die RGB Farben bestimmte Farbwerte enthalten, kann das Skript aus irgendwelchen Gründen nicht greifen.. (in InDesign wird das ganze bei den Farbfeldern mit einem Ausrufezeichen gekennzeichnet und lässt sich mit nem Klick da drauf beheben)

Die Frage ist, obs über JavaSkript einen Befehl direkt für unbenannte Farben gibt oder eine Lösung die mir weiterhilft..

Denn bei 800 Seiten jetzt wegen so nem komischen Problem alle einzeln nach unbenannten Farben durchsuchen, wird mir keinen Spaß machen! :)

Kann eventl. auch die InDesign Datei mit nem Beispiel hochladen?


als Antwort auf: [#436002]

Unbenannte Farben (anlegen/filtern)

Gerald Singelmann
  
Beiträge gesamt: 6269

11. Mär 2010, 09:37
Beitrag # 5 von 8
Beitrag ID: #436044
Bewertung:
(2800 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sie haben im ObjektModellViewer nicht nachgeschlagen, was "myObject.fillColor.space" bedeutet.
Zitat Swatch
Adobe InDesign CS4 (6.0) Object Model Object Model Object Model
A swatch (color, gradient, tint, or mixed ink).


Sowohl gradient als auch mixed ink besteht aus mindestens zwei Farben und können daher auch mehrere Spaces haben.
Sie müssen also erst mal testen, obs eine einfache Farbe ist.


als Antwort auf: [#435985]

Unbenannte Farben (anlegen/filtern)

painschen
Beiträge gesamt: 48

11. Mär 2010, 09:59
Beitrag # 6 von 8
Beitrag ID: #436053
Bewertung:
(2795 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Gerald Singelmann ] Sie haben im ObjektModellViewer nicht nachgeschlagen, was "myObject.fillColor.space" bedeutet.
Zitat Swatch
Adobe InDesign CS4 (6.0) Object Model Object Model Object Model
A swatch (color, gradient, tint, or mixed ink).


Sowohl gradient als auch mixed ink besteht aus mindestens zwei Farben und können daher auch mehrere Spaces haben.
Sie müssen also erst mal testen, obs eine einfache Farbe ist.


Macht Sinn - aber das würde die Suche bei den einfachen Farben vielleicht ermöglichen..

Nur was wenn die nicht einfachen Farben auch ebenfalls geprüft werden müssen?


als Antwort auf: [#436044]

Unbenannte Farben (anlegen/filtern)

Gerald Singelmann
  
Beiträge gesamt: 6269

11. Mär 2010, 11:08
Beitrag # 7 von 8
Beitrag ID: #436061
Bewertung:
(2782 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat aber das würde die Suche bei den einfachen Farben vielleicht ermöglichen..

Nur was wenn die nicht einfachen Farben auch ebenfalls geprüft werden müssen?


Äh... was?


als Antwort auf: [#436053]

Unbenannte Farben (anlegen/filtern)

painschen
Beiträge gesamt: 48

11. Mär 2010, 11:16
Beitrag # 8 von 8
Beitrag ID: #436063
Bewertung:
(2778 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mit bissel tricksen klappt es wie folgt (vorausgesetzt, dass vorher alle RGB Farben umgewandelt wurden):

Code
	for(var i= 0; i<myItems.length; i++){ 
var zufallf = "Unbenannte Füllfarbe "+i;
myObject = myItems[i];
try{
if(myObject.fillColor.colorValue.space != ColorSpace.MIXEDINK) {
if(myObject.fillColor.colorValue.length == 3) {
myObject.fillColor.space = ColorSpace.CMYK;
var myNewColor = myDocument.colors.add({
name: zufallf,
colorValue: myObject.fillColor.colorValue
});
myObject.fillColor=myDocument.colors.item(zufallf);
hiddenColorsCounter++;
}
}
} catch(bug){bug=null;}
}



als Antwort auf: [#436053]
(Dieser Beitrag wurde von painschen am 11. Mär 2010, 11:18 geändert)
X