[GastForen Programmierung/Entwicklung AppleScript Photoshop Pfade Kopieren

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Photoshop Pfade Kopieren

HFPatzi
Beiträge gesamt: 37

22. Feb 2012, 08:44
Beitrag # 16 von 44
Beitrag ID: #490459
Bewertung:
(6872 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Hans Haesler ] ...Gar nicht so einfach, die Datei-Paare ausfindig zu machen.


Wie recht du doch hast :-)

Habe einiges ausprobiert, aber nichts hat zum Erfolg geführt. Zumindest kann ich das Quell- und Zieldokument markieren und via automator dann in Photoshop öffnen und das Skript ausführen.

Ich habe mir gedacht, dass das ganze eventuel via shellscript zu lösen ist. Davon habe ich aber null Ahnung ;-)

Mal sehen was Google so ausspuckt.

Gruß
Patzi


als Antwort auf: [#490169]
X

Photoshop Pfade Kopieren

-hans-
Beiträge gesamt: 748

22. Feb 2012, 09:22
Beitrag # 17 von 44
Beitrag ID: #490461
Bewertung:
(6862 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi,

wie hat man sich den aufbau denn vorzustellen?
Liegen alle Dateien (jpg + tif) plain in dem Ordner?
Müssen die tif vllt. woanders abgegriffen werden?

Shell muss es nicht wirklich sein, da die Bremse eh PS sein dürfte ;-)

Tschöle

Hans


als Antwort auf: [#490459]

Photoshop Pfade Kopieren

HFPatzi
Beiträge gesamt: 37

22. Feb 2012, 09:30
Beitrag # 18 von 44
Beitrag ID: #490462
Bewertung:
(6859 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Die jpg's und tif's liegen alle im selben Ordner, von daher wäre ja ein Droplet, bei dem man einfach den kompletten Ordner draufzieht gar nicht schlecht. Ich komm nur nicht ganz dahinter, wie ich eine Schleife bauen kann, bei der immer nur die beiden zusammengehörenden Bilder (jpg + tif) geöffnet werden.


als Antwort auf: [#490461]

Photoshop Pfade Kopieren

Hans Haesler
  
Beiträge gesamt: 5826

22. Feb 2012, 09:36
Beitrag # 19 von 44
Beitrag ID: #490465
Bewertung:
(6851 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Patzi,

ich lasse mal dem Hans-Gerd den Vortritt. :-)

Gruss, Hans


als Antwort auf: [#490462]

Photoshop Pfade Kopieren

HFPatzi
Beiträge gesamt: 37

22. Feb 2012, 09:38
Beitrag # 20 von 44
Beitrag ID: #490466
Bewertung:
(6845 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hehe, alles klar. Nicht dass ihr euch noch streitet ;-)


als Antwort auf: [#490465]

Photoshop Pfade Kopieren

Hans Haesler
  
Beiträge gesamt: 5826

22. Feb 2012, 10:13
Beitrag # 21 von 44
Beitrag ID: #490470
Bewertung:
(6821 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Patzi,

keine Angst, Streit würde es nicht geben. :-)

Aber es macht keinen Sinn, wenn zwei gleichzeitig ihre Zeit opfern, um ein Problem zu lösen.

Etwas ähnliches hatte ich zwar schon mal gemacht, wüsste also, wie es anzupacken ist. Doch dank des Einsatzes von Hans-Gerd kann ich mich meinem aktuellen Projekt widmen.

Gruss, Hans


als Antwort auf: [#490466]

Photoshop Pfade Kopieren

-hans-
Beiträge gesamt: 748

22. Feb 2012, 10:29
Beitrag # 22 von 44
Beitrag ID: #490471
Bewertung:
(6799 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ollah,

hab' ich hier gerade keinen Mac ;-(

Aber ich bin mir sicher, dass schaffst Du ohne vorgegebenen Code.

Einfacher möglicher Aufbau:
Liste Dir die Namen der gedroppten Dateien.
Hat eine Datei das Suffix jpg, dann setze Dir daraus den Dateinamen und Pfad für das Tif-Pendant zusammen. Schaue ob die Datei existiert. Wenn ja, dann beide öffnen und abarbeiten ... Wenn Nein, dann LogFile schreiben o.ä ...

Sonst gerne heut' abend, aber Hans hat natürlich recht ... habe mich hier voreilig eingemischt. Bitte ich zu entschuldigen :)


als Antwort auf: [#490462]

Photoshop Pfade Kopieren

-hans-
Beiträge gesamt: 748

22. Feb 2012, 18:05
Beitrag # 23 von 44
Beitrag ID: #490537
Bewertung:
(6739 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi,

schau mal, ob Du hiermit weiter kommst ... (nicht rekursiv!)

Code
property logPath : POSIX path of (path to desktop as text) --hier wird die Error.log geschrieben   

on open listOfFolders
set TID to AppleScript's text item delimiters

set myFolder to (item 1 of listOfFolders) as text
set fileNameList to list folder myFolder without invisibles

processList(myFolder, fileNameList)
set AppleScript's text item delimiters to TID
end open


on processList(myFolder, fileNameList)
set AppleScript's text item delimiters to "."
repeat with i from 1 to count of fileNameList
set myPic to item i of fileNameList
if text item -1 of myPic is "jpg" then
try
set tifPath to ((myFolder & (text 1 thru -5 of myPic) & ".tif") as text)
--display dialog tifPath
alias tifPath
set jpgPath to (myFolder & myPic) as text
sendToPhotoshop(jpgPath, tifPath)
on error e
display alert e giving up after 2
do shell script "echo " & quoted form of (e) & " >> " & quoted form of (logPath & "Error.log")
end try
end if
end repeat

end processList


on sendToPhotoshop(jpgPath, tifPath)
--
end sendToPhotoshop



als Antwort auf: [#490466]

Photoshop Pfade Kopieren

HFPatzi
Beiträge gesamt: 37

22. Feb 2012, 18:55
Beitrag # 24 von 44
Beitrag ID: #490541
Bewertung:
(6726 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Hans,

sieht sehr vielversprechend aus, vielen Dank!

ich habe nach "on sendtophotoshop" den Code von Hans einfügt.
Sieht nun folgendermaßen aus:

Code
property logPath : POSIX path of (path to desktop as text) --hier wird die Error.log geschrieben    

on open listOfFolders
set TID to AppleScript's text item delimiters

set myFolder to (item 1 of listOfFolders) as text
set fileNameList to list folder myFolder without invisibles

processList(myFolder, fileNameList)
set AppleScript's text item delimiters to TID
end open


on processList(myFolder, fileNameList)
set AppleScript's text item delimiters to "."
repeat with i from 1 to count of fileNameList
set myPic to item i of fileNameList
if text item -1 of myPic is "jpg" then
try
set tifPath to ((myFolder & (text 1 thru -5 of myPic) & ".tif") as text)
--display dialog tifPath
alias tifPath
set jpgPath to (myFolder & myPic) as text
sendToPhotoshop(jpgPath, tifPath)
on error e
display alert e giving up after 2
do shell script "echo " & quoted form of (e) & " >> " & quoted form of (logPath & "Error.log")
end try
end if
end repeat

end processList


on sendToPhotoshop(jpgPath, tifPath)
tell application "Adobe Photoshop CS4"
activate

open tifPath
open jpgPath

set docName1 to name of document 1
set docName2 to name of document 2
if docName1 ends with ".jpg" then
set sourceDoc to docName1
set targetDoc to docName2
else
set sourceDoc to docName2
set targetDoc to docName1
end if
-- eine Schleife durch die Pfade des Quelldokuments
repeat with p from 1 to count of path items of document sourceDoc
-- das Quelldokument in den Vordergrund rücken
set current document to document sourceDoc
-- den aktuellen Pfad auswählen
select path item p of document sourceDoc
-- kopieren
copy
-- das Zieldokument in den Vordergrund rücken
set current document to document targetDoc
-- den Handler aufrufen, welcher den Pfad einsetzt
my pastePath()
-- die Auswahl im Zieldokument aufheben
try
deselect every path item of document targetDoc
end try
end repeat
end tell

end sendToPhotoshop

on pastePath()
tell application "System Events"
keystroke "v" using {command down}
end tell
end pastePath


Das einzige Problem ist, das die Bilder in Photoshop nicht geöffnet werden. Hast evtl. eine Idee warum?

Danke schonmal im Vorraus!

Gruß
Patzi


als Antwort auf: [#490537]

Photoshop Pfade Kopieren

-hans-
Beiträge gesamt: 748

22. Feb 2012, 19:14
Beitrag # 25 von 44
Beitrag ID: #490543
Bewertung:
(6717 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

an den handler werden nur strings übergeben ...
PS benötigt alias oder file.
Bekommst Du keine Fehlermeldung von PS?

versuch für's Öffnen mal:

open file tifPath
open file jpgPath

Lieben Gruß

Hans-Gerd Claßen

edit: Ich denke außerdem, dass Du die jeweils offenen dokus sichern und schliessen musst bevor Du das nächste Paar öffnest ...


als Antwort auf: [#490541]
(Dieser Beitrag wurde von -hans- am 22. Feb 2012, 20:09 geändert)

Photoshop Pfade Kopieren

HFPatzi
Beiträge gesamt: 37

23. Feb 2012, 08:33
Beitrag # 26 von 44
Beitrag ID: #490558
Bewertung:
(6660 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen,

habe das skript "korrigiert". Es Verhält sich auch schon anders. Das Problem dabei ist, dass es nicht brav immer die namensgleichen Dateipaare öffnet, sondern das ganze aussieht als ginge es wild durcheinander, wobei das sourceDoc wohl immer gleich bleibt.

Habe ich noch irgendwo etwas übersehen?

Hier das Skript:

Code
property logPath : POSIX path of (path to desktop as text) --hier wird die Error.log geschrieben    

on open listOfFolders
set TID to AppleScript's text item delimiters

set myFolder to (item 1 of listOfFolders) as text
set fileNameList to list folder myFolder without invisibles

processList(myFolder, fileNameList)
set AppleScript's text item delimiters to TID
end open


on processList(myFolder, fileNameList)
set AppleScript's text item delimiters to "."
repeat with i from 1 to count of fileNameList
set myPic to item i of fileNameList
if text item -1 of myPic is "jpg" then
try
set tifPath to ((myFolder & (text 1 thru -5 of myPic) & ".tif") as text)
--display dialog tifPath
alias tifPath
set jpgPath to (myFolder & myPic) as text
sendToPhotoshop(jpgPath, tifPath)
on error e
display alert e giving up after 2
do shell script "echo " & quoted form of (e) & " >> " & quoted form of (logPath & "Error.log")
end try
end if
end repeat

end processList


on sendToPhotoshop(jpgPath, tifPath)
tell application "Adobe Photoshop CS4"
activate

open file tifPath
open file jpgPath

set docName1 to name of document 1
set docName2 to name of document 2
if docName1 ends with ".jpg" then
set sourceDoc to docName1
set targetDoc to docName2
else
set sourceDoc to docName2
set targetDoc to docName1
end if
-- eine Schleife durch die Pfade des Quelldokuments
repeat with p from 1 to count of path items of document sourceDoc
-- das Quelldokument in den Vordergrund rücken
set current document to document sourceDoc
-- den aktuellen Pfad auswählen
select path item p of document sourceDoc
-- kopieren
copy
-- das Zieldokument in den Vordergrund rücken
set current document to document targetDoc
-- den Handler aufrufen, welcher den Pfad einsetzt
my pastePath()
-- die Auswahl im Zieldokument aufheben
try
deselect every path item of document targetDoc
end try

end repeat

close sourceDoc saving no
delay 2
close targetDoc saving yes
delay 2

end tell

end sendToPhotoshop

on pastePath()
tell application "System Events"
keystroke "v" using {command down}
end tell
end pastePath


Die zwei delays habe ich eingebaut um besser sehen zu können, was passiert.

In meinem Testornder befinden sich folgende Dateien:

1.jpg
1.tif
11.jpg
11.tif
111.jpg
111.tif

Sollte also eigentlich keine Probleme zwecks irgendwelcher Namensgleichheiten geben.

Gruß
Patzi


als Antwort auf: [#490543]

Photoshop Pfade Kopieren

-hans-
Beiträge gesamt: 748

23. Feb 2012, 09:11
Beitrag # 27 von 44
Beitrag ID: #490559
Bewertung:
(6650 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hm,

glaube an der Übergabe liegt es nicht ...
Code
on sendToPhotoshop(jpgPath, tifPath) 
display dialog jpgPath & return & tifPath


gibt bei mit immer die richtigen Dateipaare!

Vielmehr bekomme ich hier Fehlermeldungen (PS CS3)
Zitat „Adobe Photoshop CS3“ hat einen Fehler erhalten: „"1.jpg"“ versteht die Nachricht „close“ nicht.
„Adobe Photoshop CS3“ hat einen Fehler erhalten: Fehler in einer Skripterweiterung.


Dann bleiben Dateien offen und das führt natürlich zu Chaos :)

Getestet mit PS CS3 unter 10.7.3

Muss jetzt weg ...

Lieben Gruß

hans-Gerd Claßen


als Antwort auf: [#490558]

Photoshop Pfade Kopieren

-hans-
Beiträge gesamt: 748

23. Feb 2012, 11:29
Beitrag # 28 von 44
Beitrag ID: #490571
Bewertung:
(6619 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
... targetDoc und sourceDoc sind Strings keine Dokumente.

Code
close v : close the document 
close document : the document object or objects to be operated upon

>>close "1.jpg"<< dürfte also garnicht funktionieren.

Zum schließen deshalb:
Code
close document sourceDoc saving no  
close document targetDoc saving yes


So läuft es bei mir ohne Fehler.


als Antwort auf: [#490559]

Photoshop Pfade Kopieren

HFPatzi
Beiträge gesamt: 37

23. Feb 2012, 11:43
Beitrag # 29 von 44
Beitrag ID: #490577
Bewertung:
(6608 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hans und -hans-!

Ihr seid die besten...ohne scheiss ;-)

Funktioniert tadellos, darum: Vielen Dank an euch beide!

zum einen weils mal wieder eine immense Arbeitserleichterung ist und zum Anderen, weil ich wieder einiges dazulernen konnte!

Hier das finale Skript:

Code
property logPath : POSIX path of (path to desktop as text) --hier wird die Error.log geschrieben    

on open listOfFolders
set TID to AppleScript's text item delimiters

set myFolder to (item 1 of listOfFolders) as text
--display dialog myFolder
set fileNameList to list folder myFolder without invisibles

processList(myFolder, fileNameList)
set AppleScript's text item delimiters to TID
end open


on processList(myFolder, fileNameList)
set AppleScript's text item delimiters to "."
repeat with i from 1 to count of fileNameList
set myPic to item i of fileNameList
if text item -1 of myPic is "jpg" then
try
set tifPath to ((myFolder & (text 1 thru -5 of myPic) & ".tif") as text)
alias tifPath
set jpgPath to (myFolder & myPic) as text
sendToPhotoshop(jpgPath, tifPath)
on error e
display alert e giving up after 2
do shell script "echo " & quoted form of (e) & " >> " & quoted form of (logPath & "Error.log")
end try
end if
end repeat

end processList


on sendToPhotoshop(jpgPath, tifPath)
tell application "Adobe Photoshop CS4"
activate

open file tifPath
open file jpgPath

tell application "Adobe Photoshop CS4"
set docName1 to name of document 1
set docName2 to name of document 2
if docName1 ends with ".jpg" then
set sourceDoc to docName1
set targetDoc to docName2
else
set sourceDoc to docName2
set targetDoc to docName1
end if
-- eine Schleife durch die Pfade des Quelldokuments
repeat with p from 1 to count of path items of document sourceDoc
-- das Quelldokument in den Vordergrund rücken
set current document to document sourceDoc
-- den aktuellen Pfad auswählen
select path item p of document sourceDoc
-- kopieren
copy
-- das Zieldokument in den Vordergrund rücken
set current document to document targetDoc
-- den Handler aufrufen, welcher den Pfad einsetzt
my pastePath()
-- die Auswahl im Zieldokument aufheben
try
deselect every path item of document targetDoc
end try

end repeat

close document targetDoc saving yes
close document sourceDoc saving no

end tell
end tell

end sendToPhotoshop

on pastePath()
tell application "System Events"
keystroke "v" using {command down}
end tell
end pastePath


Gruß
Patzi


als Antwort auf: [#490571]
(Dieser Beitrag wurde von HFPatzi am 23. Feb 2012, 11:43 geändert)

Photoshop Pfade Kopieren

-hans-
Beiträge gesamt: 748

24. Feb 2012, 08:45
Beitrag # 30 von 44
Beitrag ID: #490679
Bewertung:
(6565 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
überschwenglich, aber nett ;-)

thx
Hans-Gerd Claßen


als Antwort auf: [#490577]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!