hilfdirselbst.ch
Facebook Twitter gamper-media

Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Unbenannte Farben (anlegen/filtern)

 



painschen S
Beiträge: 48

10. Mär 2010, 18:03

Beitrag #1 von 8
Bewertung:

(1162 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Unbenannte Farben (anlegen/filtern)


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)
Top

Gerald Singelmann  M  p
Beiträge: 5750

10. Mär 2010, 19:25

Beitrag #2 von 8
Beitrag ID: #435997

Bewertung:

(1126 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Unbenannte Farben (anlegen/filtern)


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.

Mit freundlichem Gruß
Gerald Singelmann

--------------------------
Alles rund um InDesign und Automatisierung für Profis
http://www.cuppascript.com

als Antwort auf: [#435985] Top

Martin Fischer  M  p
Beiträge: 9425

10. Mär 2010, 20:23

Beitrag #3 von 8
Beitrag ID: #436002

Bewertung:

(1120 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Unbenannte Farben (anlegen/filtern)


> Wenn also etwas innen eingefügt wurde oder Sie mit Gruppen arbeiten,
> müssen Sie deren Inhalte rekursiv erfassen.

Oder mit document.allPageItems.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#435997] Top

painschen S
Beiträge: 48

11. Mär 2010, 01:58

Beitrag #4 von 8
Beitrag ID: #436032

Bewertung:

(1095 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Unbenannte Farben (anlegen/filtern)


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] Top

Gerald Singelmann  M  p
Beiträge: 5750

11. Mär 2010, 09:37

Beitrag #5 von 8
Beitrag ID: #436044

Bewertung:

(1065 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Unbenannte Farben (anlegen/filtern)


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.

Mit freundlichem Gruß
Gerald Singelmann

--------------------------
Alles rund um InDesign und Automatisierung für Profis
http://www.cuppascript.com

als Antwort auf: [#435985] Top

painschen S
Beiträge: 48

11. Mär 2010, 09:59

Beitrag #6 von 8
Beitrag ID: #436053

Bewertung:

(1060 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Unbenannte Farben (anlegen/filtern)


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] Top

Gerald Singelmann  M  p
Beiträge: 5750

11. Mär 2010, 11:08

Beitrag #7 von 8
Beitrag ID: #436061

Bewertung:

(1047 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Unbenannte Farben (anlegen/filtern)


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] Top

painschen S
Beiträge: 48

11. Mär 2010, 11:16

Beitrag #8 von 8
Beitrag ID: #436063

Bewertung:

(1043 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Unbenannte Farben (anlegen/filtern)


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)
Top


Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Unbenannte Farben (anlegen/filtern)


^