Farbe im Dokument finden

Wir haben im Forum regelmäßig die Frage, wie man rausfinden kann, wo im Dokument eine der Farben aus der Farbfelderpalette verwendet wird.Der Test ob sie überhaupt verwendet wird, ist einfach: versuchen Sie, sie zu löschen. Dann gibt es drei Möglichkeiten:Das Farbfeld wird kommentarlos gelöscht. Bedeutung: Die Farbe wurde gar nicht verwendet.InDesign weigert sich, das Farbfeld zu löschen. Bedeutung: Die Farbe ist eine Schmuckfarbe und wird in einem platzierten Bild verwendet. Da Scripte nicht in Bilder reinschauen können, müssten Sie hier auf den Preflight von Acrobat zurückgreifen. InDesign zeigt ein Dialogfeld und fragt, gegen welche Farbe ersetzt werden soll. Bedeutung: Es gibt Objekte im Dokument, die das Farbfeld verwenden, und die sollen nach dem Löschen nicht farblos bleiben.Für den dritten Fall gibt es jetzt ein Script.

Wir haben im Forum regelmäßig die Frage, wie man rausfinden kann, wo im Dokument eine der Farben aus der Farbfelderpalette verwendet wird.

Der Test ob sie überhaupt verwendet wird, ist einfach: versuchen Sie, sie zu löschen. Dann gibt es drei Möglichkeiten:

  • Das Farbfeld wird kommentarlos gelöscht. Bedeutung: Die Farbe wurde gar nicht verwendet.
  • InDesign weigert sich, das Farbfeld zu löschen. Bedeutung: Die Farbe ist eine Schmuckfarbe und wird in einem platzierten Bild verwendet. Da Scripte nicht in Bilder reinschauen können, müssten Sie hier auf den Preflight von Acrobat zurückgreifen.
  • InDesign zeigt ein Dialogfeld und fragt, gegen welche Farbe ersetzt werden soll. Bedeutung: Es gibt Objekte im Dokument, die das Farbfeld verwenden, und die sollen nach dem Löschen nicht farblos bleiben.

Für den dritten Fall gibt es jetzt ein Script.

Wie finde ich eine Farbe?

Das ist eine scheinbar einfache Frage, auf die ich bisher immer geantwortet habe: "Na, sooo viel Möglichkeiten gibt es ja nicht. Suchen Sie einfach nach Kontur und Füllung von Objekten und Text. Vier Suchvorgänge..."

Und dann fängt man an, drüber nachzudenken und stellt fest, dass alles viel viel komplizierter ist. Eine Farbe kann stecken in...

  1. der Füllung eines Pfades
  2. der Kontur eines Pfades
  3. der Konturlücke eines Pfades
  4. der Füllung eines Textes
  5. der Kontur eines Textes
  6. der Unterstreichung eines Textes
  7. der Unterstreichungslücke eines Textes
  8. der Durchstreichung eines Textes
  9. der Durchstreichungslücke eines Textes
  10. der Absatzlinie oben eines Textes
  11. der Absatzlinienlücke oben eines Textes
  12. der Absatzlinie unten eines Textes
  13. der Absatzlinienlücke unten eines Textes
  14. dem Schlagschatten eines Objektes
  15. dem inneren Schatten eines Objektes
  16. dem äußeren Schein eines Objektes
  17. dem inneren Schein eines Objektes
  18. dem Relieflicht eines Objektes
  19. dem Reliefschatten eines Objektes
  20. dem Glanzeffekt eines Objektes
  21. dem Schlagschatten der Füllung eines Objektes
  22. dem inneren Schatten der Füllung eines Objektes
  23. dem äußeren Schein der Füllung eines Objektes
  24. dem inneren Schein der Füllung eines Objektes
  25. dem Relieflicht der Füllung eines Objektes
  26. dem Reliefschatten der Füllung eines Objektes
  27. dem Glanzeffekt der Füllung eines Objektes
  28. dem Schlagschatten der Kontur eines Objektes
  29. dem inneren Schatten der Kontur eines Objektes
  30. dem äußeren Schein der Kontur eines Objektes
  31. dem inneren Schein der Kontur eines Objektes
  32. dem Relieflicht der Kontur eines Objektes
  33. dem Reliefschatten der Kontur eines Objektes
  34. dem Glanzeffekt der Kontur eines Objektes
  35. dem Schlagschatten der Inhalts eines Objektes
  36. dem inneren Schatten der Inhalts eines Objektes
  37. dem äußeren Schein der Inhalts eines Objektes
  38. dem inneren Schein der Inhalts eines Objektes
  39. dem Relieflicht der Inhalts eines Objektes
  40. dem Reliefschatten der Inhalts eines Objektes
  41. dem Glanzeffekt der Inhalts eines Objektes

So viel also zu "Sind ja nur vier Suchvorgänge." Um den Faktor 10 verschätzt...

Das Script

Wie immer kann man einem Script beibringen, lästige Arbeiten durchzuführen. Diese Version hat aber noch einige Restriktionen:

Punkt 10 bis 13 der Liste lassen sich nicht mit einem Suchen/Ersetzen Durchgang finden. Da bliebe dem Script nur die Möglichkeit, jeden Absatz im Dokument einzeln zu inspizieren. Da ich davon ausgehe, dass Sie eh mit Absatzformaten arbeiten, wenn Sie Absatzlinien einsetzen, habe ich uns diese Bremse erspart.

Das Script durchsucht nicht Formatdefinitionen. Das könnte ergänzend sinnvoll sein bei Dokumenten, die man nicht selbst erstellt hat, bleibt aber einer späteren Version (if at all) überlassen.

Das Script durchsucht keine Bilder. In EPS oder PDF kann ein Script eh nicht reinschauen, wer das braucht muss sich also eh in den Preflight von Acrobat einarbeiten.
Es findet aber auch keine eingefärbten Graustufenbilder.
"Awww, ist der doof" ?
Nun ja, wenn ich mich darauf beschränke, PageItems zu inspizieren, ist der Code noch halbwegs elegant. Bilder sind keine PageItems, also müsste der Code komplizierter und vor allem langsamer werden, wenn das Script auch Bilder finden soll. Also nein, nicht doof, nur andere Prioritäten...

Das Ergebnis

Wie zeigt man die Fundstellen im Dokument am besten an?

Ich habe mich dafür entschieden, auf einer eigenen Ebene leuchtend rote Rechtecke um die gefundenen Rahmen zu legen. Für gefundenen Text wird der gesamte Textrahmen eingekreist, für Text im Überlauf der letzte Rahmen des entsprechenden Textflusses.

Für diese Rechtecke legt sich das Script eine eigene Farbe an.

Und eine eigene Ebene.

Wollen Sie die roten Rechtecke nach der Inspektion wieder loswerden, löschen Sie einfach die gesamte Ebene.

Und hier das Script: find_color_in_everything

Edit (20.7.2012): Ich habe ein paar Fehlerabfangroutinen eingebaut und den Link auf Script aktualisiert.

Kommentare

Super Script

Danke für dieses Script, funktioniert und hilft neben den anderen Bordmitteln unnötigen Farben zu finden. Falls eine Farbe nicht gefunden wird, einfach eine Druck-PDF erstellen und in Acrobat unter der Ausgabevorschau nachsehen, ob sie noch drin ist, wenn nein, kann man sie auch löschen. Ebenen entsperren nicht vergessen. Daumen hoch :-)

voll gut

vielen dank für das script. funktioniert top!

Suchen in Tabellen...

Das Skript sucht leider nicht in Tabellen (z.B. Zellenfarbe). Ist es möglich das Skript auf Tabellen zu erweitern. Ich habe leider noch keine Ahnung vom Skript schreiben. Dankeschön.

Suchen in Tabellen

Möglich ist das. Aber sehr aufwändig, da InDesign keine eigene Suche nach Zellenattributen anbiete.
Ich müsste also alle Attribute aller Zellen aller Tabellen einzeln durchgehen.
Das würde sehr lange dauern. Sowohl zu programmieren als auch im Ablauf.

kein Erfolg

Vielen Dank für das Skript
aber leider brachte es mir keinen Erfolg, nach dem Durchlaufen erhielt ich die Info "nix gefunden" - jedoch erhalten ich weiterhin das Dialogfeld.
ID CS6

Vielen Dank für das Feedback

Leider steckt keinerlei Diagnoseinformation drin. Da das Script auf meinem Rechner sowohl unter CS5.5 als auch CS6 läuft, sind mir die Hände gebunden.

Laufzeitfehler im Script

Das Script möchte unter CS 5.5 nicht mitspielen:

JavaScript Fehler!

Fehlernummer: 55
Fehlerzeichenfolge: Objekt unterstützt Eigenschaft oder Methode pageItems nicht

Engine: main
Datei: ... /find_colour_in_everything.jsx
Zeile 132
Quelle: if ( thing.pageItems.lengh > 0 ) {

Schade :-(

Dito

Bei mir tritt leider der gleiche Fehler auf (5.5). Schade, genau dieses Script würde mir die Arbeit um einiges erleichtern.

Skript für CS5

Dieses Skript ist superpraktisch - danke dafür.
Gibt es das auch für CS5 - dort bekomme ich eine Fehlermeldung? Auf CS4 hat es problemlos funktioniert.

Danke.
Viele Grüße,
Conny

Hat noch einen kleinen Bug

Hallo Gerald,
ein sehr nützliches Script, auch die Idee mit der
Extra-Ebene finde ich gut gelöst – danke!

Bei mir zeigt es allerdings auch die Farben ”Papier" und ”Ohne" an
obwohl diese nicht im Dokument vorhanden sind. Es werden dann einfach
alle vorhandenen Rahmen rot unterlegt ...

Gruß
Klaus

Fehlermeldung

Hallo Herr Singelmann
Ein super Skript! Ich krieg aber eine Fehlermeldung, und kann mir nicht erklären warum:

"Der Befehl konnte nicht ausgeführt werden, da das Objekt aus einem anderen Dokument oder Arbeitsbereich stammt.
Zeile: 75
Quelle: ap.findTextPreferences.fillColor = swatch;"

Könnnen Sie nachvollziehen, wo das Problem liegt?

Ich arbeite mit InDesign CS3 auf OSX.

Freundliche Grüsse

David B.