happig, Deine Aufgabenstellung... Aus Erfahrung weiss ich, dass das Anstossen von Aktionen aus einem AppleScript heraus problematisch sein kann. Aber das war mit Photoshop 6.
Ich warte immer noch auf mein CS-Upgrade. Doch werde ich morgen mit Photoshop 7 versuchen, etwas zu entwickeln.
Morgen, weil ich die beiden Ferientage einziehe, welche ich für den AppleScript-Kurs reserviert hatte. Dieser fällt aber aus, weil nicht genügend Anmeldungen eingegangen sind …
Hallo Karsten, nein keineswegs. Hier handelt es sich um eine andere Baustelle. Aber da ich meinem Kollegen jetzt mit deiner Hilfe diesen tollen Workflow gebastelt habe, kommt nun ein anderer mit ähnlichen Gedankengängen, in dem aber die Sache mit den Beschneidungspfaden nicht zu tragen kommt.
Aber vielen Dank nochmal für deine perfekte Anleitung
Hi Karsten, folgende Anforderungen: Aus einem aktuellen Katalog sollen alle Bilder mit der Kennung FS05 (Frühjahr-Sommer05) ausgelesen werden. Diese Bilder müßen einem Dienstleister zur Erstellung von Internetseiten zur Verfügung gestellt werden. Die Bilder werden ganz einfach rechteckig begrenzt ohne Freisteller und sonstigen Firlefanz abgegeben (in drei Größen). Da natürlich sehr viele Bilder mit der Kennung FS05 existieren, ist der Weg über das entgültige XPress der Eleganteste; meiner Meinung nach. Ich kann natürlich auch alle Bilder mit Flightcheck sammeln lassen und alle die kein FS05 enthalten löschen. Aber da ist mir immer noch zu viel manueller Eingriff von Nöten. Wenn noch mehr Info benötigt wird, kannst Du dich gerne bei mir melden. Gruß und einen schönen Abend wünscht Dir Uwe
nun, fürs erste komme ich mit einer Lösung, welche nur halbautomatisch ist. Der Vorteil ist aber, dass die Aktionen geradlinig, ohne konfliktbeladene Überschneidungen ablaufen.
Mein Vorschlag: ein Droplet, auf welches die XPress-Dokumente gezogen werden. Das Script fordert auf, einen Zielordner zu bestimmen. Dann öffnet es ein Dokument nach dem andern, erstellt eine Liste der "FS05"-Bilder und kopiert sie in den gewählten Ziel-Ordner.
Danach kann man aus Photoshop die Aktion starten.
Den folgenden Code als Applikation sichern: --- property targetFolder : "" global filePath
script copyImages global imageList set imageList to {} tell application "QuarkXPress 4.11" activate open alias filePath use doc prefs yes remap fonts no do auto picture import no tell document 1 repeat with i from 1 to count of picture boxes set curPath to (file path of image i) as string if curPath ends with "FS05" then set end of imageList to curPath end if end repeat end tell end tell if imageList is not {} then tell application "Finder" to activate repeat with i from 1 to count of imageList try tell application "Finder" to duplicate file (item i of my imageList) to ¬ folder targetFolder with replacing end try end repeat end if tell application "QuarkXPress 4.11" close document 1 saving no end tell end script
on open droppedObjects if targetFolder = "" then set dR to (display dialog "Der Ziel-Ordner für die »FS05«-Bilder ist nicht bekannt." buttons {"Abbruch", "Zuweisen"} default button 2 with icon 2) if button returned of dR = "Zuweisen" then set targetFolder to (choose folder with prompt ¬ "Den Ziel-Ordner für die »FS05«-Bilder bestimmen.") as string else error number -128 end if end if repeat with anObject in droppedObjects if (anObject as string) ends with ":" then set fileList to list folder anObject without invisibles repeat with aFile in fileList set filePath to (anObject & aFile) as string set fileType to file type of (info for file filePath) if fileType = "XDOC" then tell application "QuarkXPress 4.11" do script {copyImages} end tell end if end repeat else set filePath to anObject as string set fileType to file type of (info for file filePath) if fileType = "XDOC" then tell application "QuarkXPress 4.11" do script {copyImages} end tell end if end if end repeat activate display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1 end open --- Übrigens: Wenn ich "Classic Modus" höre, dann sträuben sich bei mir die Nackenhaare … Deshalb habe ich das Script zuerst unter Mac OS 9 entwickelt. Aber dann habe ich mich überwunden und das Script auch unter Mac OS X getestet: Es funktioniert hervorragend!
Guten Morgen Hans, ich habe das Script gerade ausprobiert. Es läuft super. Natürlich habe ich in meiner Beschreibubg für Karsten etwas wichtiges vergessen: :oops: In dem XPress Dokument sind natürlich "Lay"-Bilder geladen. Die dazugehörigen Feinbilder liegen ein Verzeichniss höher. Kann man den Schritt auch noch einbauen, das die Fein- und nicht die Grobdaten kopiert werden? Gruß und Danke Uwe
ja, den Schritt kann man einbauen. Aus Deiner Schilderung lese ich heraus, dass die Grobbilder in einem Ordner namens "layouts" liegen. Aus Erfahrung weiss ich, dass bei bestimmten Dateitypen dabei das Suffix geändert wird. Aber weil die Bilddateien, welche uns interessieren, mit "FS05" enden, haben sie folglich kein Suffix. Uff!!!
Bitte bestätige meine Annahme, dass der Ordner "layouts" heisst.
Hallo Hans, das ist richtig. Die Grobdaten liegen in einenm Ordner Namens "lauouts". In diesem Fall enthalten die Bilddaten aber kein Suffix. Die Bilder heißen einfach z.B. "022547 41_FS05".
gut. In diesem Fall ist die Änderung recht einfach. Die einzelnen Elemente des Pfades sind mit Doppelpunkten abgegrenzt. Deshalb werden die 'text item delimiters' von AppleScript zuerst auf {":"} gesetzt. Zum Entfernen des "layouts"-Ordners setzt man den Pfad neu zusammen. Man nimmt dazu die Elemente 1 bis -3 (also vom ersten bis zum drittletzten) und das Element -1 (der Bildname): Nach dem Ende der Repeat-Schleife werden die 'text item delimiters' wieder auf {""} zurückgesetzt. Die Änderung betrifft nur das Script-Objekt "copyImages". Bitte ersetze dieses im Script durch den folgenden Code: --- script copyImages global imageList set imageList to {} tell application "QuarkXPress 6.1" activate open alias filePath use doc prefs yes remap fonts no do auto picture import no set AppleScript's text item delimiters to {":"} tell document 1 repeat with i from 1 to count of picture boxes set curPath to (file path of image i) as string if curPath ends with "FS05" then set finePath to ¬ ((text items 1 thru -3 of curPath) & (text item -1 of curPath)) as string set end of imageList to finePath end if end repeat end tell set AppleScript's text item delimiters to {""} end tell if imageList is not {} then tell application "Finder" to activate repeat with i from 1 to count of imageList try tell application "Finder" to duplicate file (item i of my imageList) to ¬ folder targetFolder with replacing end try end repeat end if tell application "QuarkXPress 6.1" close document 1 saving no end tell end script ---
Hallo Hans, es funktioniert mal wieder tadellos. Nun werde ich mal versuchen den zugewiesenen "FS05"-Ordner mit einer Ordneraktion zu belegen. Vielleicht klappt das ja.
an Deiner Stelle würde ich ganz einfach die Aktion aus Photoshop heraus starten. Denn wenn dies von einer Ordneraktion aus gemacht wird, dann gibt es garantiert Probleme beim Sichern.
Eine Variante: Die Photoshop-Aktion in ein Droplet verwandeln und den "FS05"- Ordner darauf ziehen.
Hi Hans, ja ich habe gemerkt, das das mit dem überwachten Ordner nicht so ganz einfach ist. Die Sache per Droplet zu lösen ist sicherlich eleganter und sicherer.