Forenindex » Programmierung/Entwicklung » AppleScript » AS in Verbindung von XPress 4.11 und Photoshop CS

AS in Verbindung von XPress 4.11 und Photoshop CS

Anonym
Beiträge gesamt: 22827

6. Okt 2004, 13:43
Bewertung:

gelesen: 2912

Beitrag als Lesezeichen
Hallo,
folgende Aufgabenstellung:
- XPress Dok. öffnen
- alle Bilder mit der Endung"_XY05" in Photoshop CS öffnen
- Photoshop Aktionen ausführen
- Bilder sichern in Ordner "xyz"
- Bilder schließen
- Xpress Dok. schließen

Alles sollte per AppleScript angestoßen werden. Entweder per Hotfolder oder per Doppelklick.

XPress 4.11 läuft im Classic Modus, Photoshop CS auf X.

Hat schon einmal jemand so etwas "gebaut", oder hat eine Idee?

Gruß
Uwe

AS in Verbindung von XPress 4.11 und Photoshop CS

Hans Haesler
  
Beiträge gesamt: 5826

6. Okt 2004, 14:47
Bewertung:

gelesen: 2911

Beitrag als Lesezeichen
Hallo Uwe,

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 …

Hans Haesler <hsa@ringier.ch>

AS in Verbindung von XPress 4.11 und Photoshop CS

Anonym
Beiträge gesamt: 22827

6. Okt 2004, 17:49
Bewertung:

gelesen: 2911

Beitrag als Lesezeichen
Hallo Uwe,

diese Aufgabenstellung hat nicht zufällig was mit den Beschneidungspfaden zu tun, oder?

Ansonsten wäre das ärgerlich ...

Karsten

AS in Verbindung von XPress 4.11 und Photoshop CS

Anonym
Beiträge gesamt: 22827

6. Okt 2004, 19:12
Bewertung:

gelesen: 2911

Beitrag als Lesezeichen
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

Uwe

AS in Verbindung von XPress 4.11 und Photoshop CS

Anonym
Beiträge gesamt: 22827

6. Okt 2004, 20:13
Bewertung:

gelesen: 2911

Beitrag als Lesezeichen
Hallo Uwe,

aber es kommt erneut ein Kollege "mit Gedankengängen" &#133;

Im Gegensatz zu der ClipppingPath-Frage beginnt das Prozedere ja nicht im Dateisystem, sondern in QXP.

Folglich könnte - ja was eigentlich - &#133;?
Tut es sehr weh, die Anforderungen GENAU zu definieren?

Karsten

AS in Verbindung von XPress 4.11 und Photoshop CS

Anonym
Beiträge gesamt: 22827

6. Okt 2004, 20:34
Bewertung:

gelesen: 2911

Beitrag als Lesezeichen
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

AS in Verbindung von XPress 4.11 und Photoshop CS

Anonym
Beiträge gesamt: 22827

6. Okt 2004, 20:58
Bewertung:

gelesen: 2911

Beitrag als Lesezeichen
Hallo Uwe,

aus XY wurde kurzerhand FS und die Tatsache, dass 3 Größen benötigt werden hat ja auch was &#133;

Zitat Die Bilder werden ganz einfach rechteckig begrenzt ohne Freisteller und sonstigen Firlefanz abgegeben

Der sichtbare Ausschnitt im QXP-Layout ist folglich irrelevant &#133;

Hans macht das schon ;-)


Karsten

AS in Verbindung von XPress 4.11 und Photoshop CS

Hans Haesler
  
Beiträge gesamt: 5826

7. Okt 2004, 12:22
Bewertung:

gelesen: 2911

Beitrag als Lesezeichen
@ Karsten: Danke für die Vorarbeit! ;-)


Hallo 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 &not;
          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 &raquo;FS05&laquo;-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 &not;
        "Den Ziel-Ordner für die &raquo;FS05&laquo;-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 &#133;
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!

Hans Haesler <hsa@ringier.ch>

AS in Verbindung von XPress 4.11 und Photoshop CS

Anonym
Beiträge gesamt: 22827

11. Okt 2004, 09:11
Bewertung:

gelesen: 2911

Beitrag als Lesezeichen
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

AS in Verbindung von XPress 4.11 und Photoshop CS

Hans Haesler
  
Beiträge gesamt: 5826

11. Okt 2004, 09:40
Bewertung:

gelesen: 2911

Beitrag als Lesezeichen
Hallo 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.

Hans Haesler <hsa@ringier.ch>

AS in Verbindung von XPress 4.11 und Photoshop CS

Anonym
Beiträge gesamt: 22827

11. Okt 2004, 09:45
Bewertung:

gelesen: 2911

Beitrag als Lesezeichen
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".

Gruß
Uwe

AS in Verbindung von XPress 4.11 und Photoshop CS

Hans Haesler
  
Beiträge gesamt: 5826

11. Okt 2004, 10:35
Bewertung:

gelesen: 2911

Beitrag als Lesezeichen
Hallo Uwe,

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):
Code
set finePath to ((text items 1 thru -3 of curPath) & (text item -1 of curPath)) as string 

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 &not;
            ((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 &not;
          folder targetFolder with replacing
      end try
    end repeat
  end if
  tell application "QuarkXPress 6.1"
    close document 1 saving no
  end tell
end script
---

Hans Haesler <hsa@ringier.ch>

AS in Verbindung von XPress 4.11 und Photoshop CS

Anonym
Beiträge gesamt: 22827

11. Okt 2004, 13:33
Bewertung:

gelesen: 2911

Beitrag als Lesezeichen
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.

Vielen Dank
Uwe

AS in Verbindung von XPress 4.11 und Photoshop CS

Hans Haesler
  
Beiträge gesamt: 5826

11. Okt 2004, 14:21
Bewertung:

gelesen: 2911

Beitrag als Lesezeichen
Hallo Uwe,

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.

Hans Haesler <hsa@ringier.ch>

AS in Verbindung von XPress 4.11 und Photoshop CS

Anonym
Beiträge gesamt: 22827

11. Okt 2004, 15:22
Bewertung:

gelesen: 2911

Beitrag als Lesezeichen
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.


Uwe