Forenindex » Programmierung/Entwicklung » AppleScript » InDesign CS2 - delete unused swatches...

InDesign CS2 - delete unused swatches...

TMA
Beiträge gesamt: 399

6. Feb 2007, 07:42
Bewertung:

gelesen: 2381

Beitrag als Lesezeichen
guten morgen zusammen,
habe folgendes problem:

ein indesign cs2 dokument hat ein objekt deren hintergrundfarbe mit einem verlauf versehen ist (meinetwegen cyan zu weiß). die verlaufsfarben wurden aber nicht als extra farbe in der farbfeld-palette angelegt sondern nur über die farbe-palette definiert.

wenn ich jetzt in indesign direkt in der farbfeld-palette alle unbenutzten farben auswähle und lösche läuft alles richtig.

wenn ich aber über applescript den befehl:

Code
delete unused swatches 


benutze, wird der cyan zu weiß verlauf verändert. die farbe cyan wird durch schwarz ersetzt, da dieses cyan (kein reines cyan) nicht als farbfeld angelegt war.

wie bekomme ich nun die unbenutzten farben eines dokumentes per as gelöscht, so das benutzte aber nicht angelegte farbfelder nicht gelöscht werden?

gruß
TMA

InDesign CS2 - delete unused swatches...

Hans Haesler
  
Beiträge gesamt: 5826

6. Feb 2007, 09:27
Bewertung:

gelesen: 2380

Beitrag als Lesezeichen
Hallo TMA,

ich kann Deine Beobachtung bestätigen. Wenn eine Reglerfarbe eines
Verlaufsfeldes als CMYK definiert ist – statt als Farbfeld –, dann
wird sie beim "Aufräumen" per Script durch "[Schwarz]" ersetzt.

Ein Gegenmittel gibt es nicht. Es bleibt Dir nichts anderes übrig,
als die unbenutzten Farbfelder manuell zu löschen, wenn sie wirklich
entfernt werden müssen.

Gruss, Hans

InDesign CS2 - delete unused swatches...

TMA
Beiträge gesamt: 399

6. Feb 2007, 09:59
Bewertung:

gelesen: 2380

Beitrag als Lesezeichen
danke hans,
ich habs befürchtet. bietet javascript vielleicht eine lösung?

gruß
TMA

InDesign CS2 - delete unused swatches...

Hans Haesler
  
Beiträge gesamt: 5826

6. Feb 2007, 11:53
Bewertung:

gelesen: 2380

Beitrag als Lesezeichen
Hallo TMA,

beim ersten Versuch war es dasselbe "Elend". Zudem ist es sehr
wahrscheinlich mit JavaScript nicht möglich, die unbenutzen
Farbfelder auf einen Schlag zu entfernen.

Ich musste eine Schleife einrichten. Kein Erfolg.
Aber da kam ich auf die Idee, die einzelnen Elemente der Liste
näher zu betrachten. Und siehe da:
Code
//RemoveUnusedSwatches.js 

var uuSwatches = app.documents[0].unusedSwatches;
for (var i=0; i<uuSwatches.length; i++) {
  if (uuSwatches[i].name != "") {
    try {
    uuSwatches[i].remove();
    }
    catch (e) {
    }
  }
}

Jetzt blieben auch fahrlässig erstellte Verläufe unverändert.

Doch Du hättest lieber ein AppleScript ;-)...
---
tell document 1 of application "Adobe InDesign CS2"
   activate
   set uuSwatches to unused swatches
   repeat with i from 1 to count of uuSwatches
      if name of (item i of uuSwatches) is not "" then
         try
            delete (item i of uuSwatches)
         end try
      end if
   end repeat
end tell
---
Aber bitte auf eigene Verantwortung einsetzen.

Gruss, Hans

InDesign CS2 - delete unused swatches...

TMA
Beiträge gesamt: 399

6. Feb 2007, 12:13
Bewertung:

gelesen: 2380

Beitrag als Lesezeichen
hi hans,
klappt super! besten dank für deine mühen.
bei genauerem überlegen ist dies eigentlich logisch, unbenutzte farben die keinen namen haben einfach zu löschen.

danke und noch eine angenehme woche.

gruß
TMA

InDesign CS2 - delete unused swatches...

Hans Haesler
  
Beiträge gesamt: 5826

6. Feb 2007, 13:10
Bewertung:

gelesen: 2380

Beitrag als Lesezeichen
Hallo TMA,

bitteschön.

Allerdings ist es genau andersrum: Der aktuelle Swatch
wird nur gelöscht, wenn er einen Namen zurückgibt.

Gruss, Hans

InDesign CS2 - delete unused swatches...

TMA
Beiträge gesamt: 399

6. Feb 2007, 13:19
Bewertung:

gelesen: 2380

Beitrag als Lesezeichen
äh, ja. sorry, hab ich verwechselt.

gruß
TMA