Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Automator: Platzhalter für Dateinamen und Verzeichnisse?

140 views
Skip to first unread message

Sebastian Kaps

unread,
Jun 18, 2009, 6:36:21 AM6/18/09
to
Hi!

Ich muss eine Reihe EPS-Dateien in PDFs umwandeln. Das geht ganz gut,
indem ich sie in Preview öffne und dann als PDF abspeichere.
Nun dachte ich mir, dass diese stupide Arbeit doch ideal wäre, um mal
Automator auszuprobieren.
Ich habe also einen Workflow erstellt, der die im Finder markierten
Bilder als PDF speichern soll. Dummerweise scheint man für den
"speichern"-Teil nur feste Verzeichnis- und Dateinamen vergeben zu
können, was irgendwie schwachsinnig ist.
Ich hätte gern sowas wie "speichere im selben Verzeichnis wie das
Original mit demselben Namen, nur anderer Dateiendung".
Geht das irgendwie?

--
Ciao, Sebastian

Christoph Gartmann

unread,
Jun 18, 2009, 6:48:06 AM6/18/09
to

Ja, mit AppleScript. Automator erstellt ein AppleScript. Dieses kann man mit
dem Script-Editor bearbeiten. Dann geht auch das, was Du willst.

Viele Gruesse
Christoph Gartmann

--
Max-Planck-Institut fuer Phone : +49-761-5108-464 Fax: -80464
Immunbiologie
Postfach 1169 Internet: gartmann@immunbio dot mpg dot de
D-79011 Freiburg, Germany
http://www.immunbio.mpg.de/home/menue.html

Thomas Kaiser

unread,
Jun 18, 2009, 7:39:40 AM6/18/09
to
Sebastian Kaps schrieb in <news:m2vdmtd...@macbook.sebastian-kaps.de>

> Ich muss eine Reihe EPS-Dateien in PDFs umwandeln. Das geht ganz gut,
> indem ich sie in Preview öffne und dann als PDF abspeichere.

Preview.app nutzt zur Umwandlung von (Encapsulated) PostScript das
PSNormalizer Framework -- dito pstopdf(1). Wenn Du also was mit "man
pstopdf" anfangen kannst, dann bist Du quasi schon längst am Ziel.

> Nun dachte ich mir, dass diese stupide Arbeit doch ideal wäre, um mal
> Automator auszuprobieren.

Der Automator ist nur was für Leute, die sich nicht mit Skripting
beschäftigen wollen. Und demzufolge ein beschränkter Blechtrottel, den
Du nur in engen Grenzen dazu bekommst, nach Deiner Pfeife zu tanzen.

Alles, was nicht an Intelligenz/Optionen in entsprechend aufwändig
(vorher) programmierten Automator Actions steckt, steht auch nicht zur
Verfügung. Ausnahme: Man bastelt sich selbst Automator Aktionen, bspw.
in AppleScript oder Shell-Dialekten (beides auch direkt in Automator
Workflows integrierbar).

Gruss,

Thomas

Thomas Kaiser

unread,
Jun 18, 2009, 7:56:07 AM6/18/09
to
Christoph Gartmann schrieb in <news:h1d616$o6d$1...@news.belwue.de>
> Automator erstellt ein AppleScript.

Aha, wie das?

> Dieses kann man mit dem Script-Editor bearbeiten.

Aha, wie das? Das AppleScript, das "Automator erstellt (hat)"? Oder
sprichst Du zufällig von AppleScript-basierten Automator-Actions (welche
es im Zusammenspiel mit Bildern nicht gibt)?

> Dann geht auch das, was Du willst.

Aha, wie das? Wie bitte sehr kommt man per AppleScript an

/System/Library/Automator/New PDF from Images.action

ran?

Wenn man die Aufgabenstellung des OP umständlich, d.h. per AppleScript,
erledigen will, dann sollte man sich "Image Events" näher anschauen:

<http://www.apple.com/applescript/imageevents/>

Für jemand mit bisserl Shell-Affinität ist generell der Blick zu sips(1)
bzw. in ganz konkreten Fall zu pstopdf(1) sinniger.

Der Witz an AppleScript und Automator ist ja der, daß wenn man den
Blechtrottel mittels AppleScript aufbohren wollte, man das Ganze in ca.
99,99% aller Fälle direkt, d.h. unter Ausschluß des Automators viel
schneller per Skripteditor hinbekommt. Die verbleibenden 0,01% sind die
Fälle, in denen jemand mit viel Liebe und Mühe eine Automator Action in
AppleScript zusammenhackt und diese der programmier- bzw. skripting-
unlustigen Allgemeinheit zur Verfügung stellt. Vulgo Auftragsarbeit oder
krude Mischung aus Masochismus/Altruismus.

Gruss,

Thomas

Sebastian Kaps

unread,
Jun 18, 2009, 8:11:25 AM6/18/09
to
Thomas Kaiser schrieb:

> Preview.app nutzt zur Umwandlung von (Encapsulated) PostScript das
> PSNormalizer Framework -- dito pstopdf(1). Wenn Du also was mit "man
> pstopdf" anfangen kannst, dann bist Du quasi schon längst am Ziel.

Danke, so werd ich's dann wohl machen. Wobei die manpage da beinahe
überflüssig ist ;-)

>> Nun dachte ich mir, dass diese stupide Arbeit doch ideal wäre, um mal
>> Automator auszuprobieren.
> Der Automator ist nur was für Leute, die sich nicht mit Skripting
> beschäftigen wollen. Und demzufolge ein beschränkter Blechtrottel, den
> Du nur in engen Grenzen dazu bekommst, nach Deiner Pfeife zu tanzen.

Ja, scheint so zu sein. Dann werd' ich ihn auch in Zukunft ignorieren.

--
Ciao, Sebastian

Thomas Kaiser

unread,
Jun 18, 2009, 9:37:42 AM6/18/09
to
Sebastian Kaps schrieb in <news:m263eti...@macbook.sebastian-kaps.de>

> Ja, scheint so zu sein. Dann werd' ich ihn auch in Zukunft ignorieren.

Hmm... das war jetzt aber auch nicht ganz meine Intention. Es ist nur
so: Dem Automator wird gerne angedichtet, er wäre ein mit magischen
Kräften ausgestattetes Universalwerkzeug, mit dem man prinzipiell alles
automatisieren kann, bei dem man merkt, daß es einem fad wird, wenn
man's zu Fuß erledigen wollte.

Dem ist halt leider nicht so.

Der Automator ist erstmal wirklich nur ein Werkzeug, um Bausteine
zusammenzusetzen: konkret bastelt man sich aus "Automator Actions"
entsprechende Workflows". Die Intelligenz bzw. der konkrete
Automatisierungs-Teilschritt steckt in den Aktionen. Um möglichst
flexible Workflows zusammenkleben zu können, sollte jede Aktion so
beschränkt wie möglich sein (daher rührt die oft spartanische
Parametrisierbarkeit der diversen Aktionen -- wenn man bspw. verhindern
will, daß eine Aktion, die das macht, was man will, die Ursprungsdateien
überschreibt, muß man halt davor noch eine Finder-Aktion klemmen, die
die Dateien dupliziert und ggf. am Ende des Workflows noch eine, die
dann passend die Duplikate benamst)

Die Schnittstelle zwischen den einzelnen Aktionen ist ähnlich bei wie
unixoiden CLI-Tools Pipe-basiert (die vorhergehende Aktion hustet
irgendwas raus, die nachfolgende liest das ein). Allerdings mit einem
eklatanten Unterschied: Es werden Objekte übergeben, bspw.
Dateisystemreferenzen oder Text oder ein Bildobjekt.

Sollten Ausgabe- und Eingabe-Datentyp nicht zueinander passen und das
Automator-Framework eine sinnvolle Konvertiermöglichkeit (er)kennen,
dann wird automatisch eine Coercion Action zwischengeschaltet, die sich
um eine Umwandlung der Dateitypen kümmert (deshalb muß beim
Programmieren einer Automator Action mit viel XML-Geschwurbel dafür
gesorgt werden, dem Automator bekannt zu machen, mit was das Ding
eingehend umgehen kann und was es ausgehend wiederum liefert.

D.h. alles, daß wenn man selbst nicht programmieren/skripten kann/will,
ausschließlich auf das angewiesen ist, was Apple mitliefert, was die
Hersteller irgendwelcher Programme zur Integration mit eben jenen
beilegen oder was so im Web herumfliegt [1].

Will/kann man skripten, dann kommt's drauf an. Für ein einzelnes Projekt
eine vollwertige Automator Action zu schreiben, wäre Schwachsinn (obwohl
das inzwischen mittels XCode alles gar nicht mehr so heftig ist). Es
gibt aber ebenfalls die Möglichkeit, innerhalb Automator Workflows sich
einfach so per Skripting einzuklinken. Sowohl per unixoidem Kram (Shell
bspw.) als auch AppleScript.

Taucht man innerhalb einer Automator Action in den Unix-Unterbau ab
(bspw. um dort Dateien zu verarbeiten und dann die Ergebnisse zurück an
den Workflow zu liefern), so muß man allerdings darauf achten, daß das
typische Unix-Tool bzw. die Shell erstmal nix von Dateitypen bzw. den
Objektformaten kennt, die an der Schnittstelle zwischen verschiedenen
Automator Actions übergeben werden müssen. Wenn ein Perl-Skript bspw.

/Users/Shared/bla/fasel.tif

zurückgibt, dann ist das aus Sicht von Automator keine Datei sondern ein
Stück Text -- der aber passend in ein Dateisystemobjekt umgewandelt
werden kann, indem man der unixoiden Automator-Aktion eine in
AppleScript folgen läßt [2], die sich darum kümmert, an die
darauffolgenden Aktionen wiederum Dateireferenzen weiterzureichen.

Was soll das ganze Blabla nun? Werbung dafür machen, daß man das Ding
dafür nutzt, wofür es prima zu gebrauchen ist, anstatt es ganz links
liegen zu lassen :-)

Denn obwohl der Automator nicht das Universalwerkzeug für jede nur
_denkbare_ Automatisierungsaufgabe ist (_das_ klassische
Mißverständnisse des normalen Anwenders), läßt er sich doch prima für
dies&das und zur Integration verschiedener Welten nutzen.

Man kann bspw. Automator Actions als Plug-Ins speichern (für den Finder
-- stehen dann via Kontextmenü zur Verfügung und bekommen alle
ausgewählten Dateisystemobjekte an den Kopf geworfen -- oder für andere
Tools wie "Digitale Bilder", iCal, "Ordneraktionen" oder das "Skript
Menü") und auf die Weise einen erstmal autark erscheindenden Workflow in
beliebige Arbeitsabläufe/Programme einbinden, der die ausgewählten
Objekte (Dateien, Termine, Text/Inhalt, etc.) direkt weiterverarbeitet.

Oder einen Workflow nach

[~]/Library/PDF\ Services/

sichern, damit er links unten in jedem Druckdialog zur Verfügung steht
(um bspw. nur durch Auswahl der Aktion im Druckdialog ein PDF
einzudampfen -- Bilder komprimieren --, mit Wasserzeichen "draft" zu
versehen, zu verschlüsseln und per eMail/FTP/whatever durch die Gegend
zu ballern). Ohne eine Zeile zu programmieren/skripten.

Dito komplexere Abläufe, die regelmäßig nur auf gewisse Dateien
anzuwenden sind, per Automator triggern lassen (der kann ja auch per
Spotlight die initiale Dateiauswahl kredenzt bekommen).

Oder Workflows an gewisse Aktionen knüpfen (Speicherkarte oder Kamera
wird angeschlossen bzw. Scanner startet und "Digitale Bilder" kopiert
den Kram irgendwohin, erstellt Kontaktbogen/Miniaturen, etc. etc.)

Oder schmerzfrei aus der Shell heraus Sachen in einen Workflow eintüten
(bspw. kann man nur via Finder Dateien *inklusive* Spotlight Kommentare
verschieben/umbenennen), indem man automator(1) nutzt (der kümmert sich
freundlicherweise selbst darum, die per "-i" übergebenen Dateireferenzen
in entsprechende High-Level-Dateisystemobjekte umzuwandeln und dann
weiterzureichen)

Als Ergänzung/Anbau an stets wiederkehrende Abläufe ist der Automator
IMO gut geeignet, wenn man sich mal damit auseinandergesetzt hat, was
alles wirklich damit geht, wie die einzelnen Bestandteile/Aktionen
aneinandergenagelt werden, welche Workarounds man teilweise nutzen muß
(_vorher_ Dateien duplizieren und _nachher_ automatisch umbenennen
lassen bspw.) und was so alles an freien Aktionen herumfliegt, die einem
in diversen Lebenslagen helfen können.

Nur die Wunschvorstellung, der Automator könne nahezu alles, ist halt
einfach falsch. Dito, man könne _mittels_ Automator beliebig komplexe
Automatisierungen per Skripting abfeiern. Das geht -- wenn man skripten
kann -- ohne Automator deutlich schneller.

Gruss,

Thomas

[1] Gibt einige Anlaufstellen im Web, wo Automator Actions für alles
Mögliche herumflacken:

<http://www.google.com/search?q=automator+actions>

[2] AppleScript-Handler, der nach Shell-Aktionen geklemmt werden muß,
damit aus "Text", also durch return abgetrennte Dateireferenzen, die
aus der Shell raufgereicht werden, echte Datei-Objekte werden, mit
der die Folgeaktion dann auch korrekt umgehen kann:

on run {input, parameters}
set MyFiles to {}
set {oldTID, AppleScript's text item delimiters} to ¬
{AppleScript's text item delimiters, return}
set MyPaths to text items of input
set AppleScript's text item delimiters to oldTID
repeat with i in every item of MyPaths
set MyFiles to MyFiles & POSIX file i
end repeat
return MyFiles
end run

Sebastian Kaps

unread,
Jun 18, 2009, 10:11:00 AM6/18/09
to
Thomas Kaiser schrieb:

>> Ja, scheint so zu sein. Dann werd' ich ihn auch in Zukunft ignorieren.

> Hmm... das war jetzt aber auch nicht ganz meine Intention.

[...]

Wow, danke für die auführliche Darstellung. Ich hab gerade nochmal ein
wenig mit dem Automator rumgespielt und prinzipiell könnte man wohl ganz
nette Sachen damit machen.
Das Problem ist, dass man als "Einsteiger" keinen blassen Schimmer hat,
was die standardmäßig verfügbaren Actions alle bewerkstelligen. Man muss
sich erstmal Zeit nehmen muss, die alle anzuschauen.
Dann stellt man aber recht schnell fest, dass es eigentlich viel zu
wenige Actions gibt, so dass man Glück haben muss, wenn man das
gewünschte damit realisieren kann.
Ich werd' mir aber mal bei Gelegenheit die im Netz verfügbaren Actions
ansehen - ich vermute, dass man die Fähigkeiten des Automators noch
deutlich erweitern kann.

--
Ciao, Sebastian

Thomas Kaiser

unread,
Jun 19, 2009, 2:00:34 PM6/19/09
to
Sebastian Kaps schrieb am 18.06.2009 in <news:m2fxdxy...@macbook.sebastian-kaps.de>

> Das Problem ist, dass man als "Einsteiger" keinen blassen Schimmer
> hat, was die standardmäßig verfügbaren Actions alle bewerkstelligen.

Der Hilfetext, der links unten eingeblendet wird, wenn man die Aktion in
Automator "anfaßt", hilft IMO aber schon ein wenig. Aber Du hast
recht...

> Man muss sich erstmal Zeit nehmen muss, die alle anzuschauen.

Wobei die Task-bezogene Gliederung in 10.5 wenigstens für mehr Übersicht
sorgt. BTW: Ich als jemand, der Automatisierung meist von Hand erledigt
(also schnell ein Skript zusammentippt, bevor er drüber nachdenkt, was
wie in Automator zusammengesteckt gehört, damit was zur Individual-
lösung Äquivalentes dabei rauskommt), bin ja eh schon denkbar
ungeeignet, die Vorzüge von Automator objektiv bzw. (aufgrund Ignoranz)
auch nur umfassend darzulegen.

Mit 10.5 wurden die Möglichkeiten, Workflows zu gestalten, ja ein ganzes
Eckchen erweitert, siehe bspw.:

<http://automator.us/leopard/>

Bzw. ist das Dingens komplex genug, ein Buch darüber (wohlgemerkt die
10.5-Inkarnation!) zu füllen:

<http://de.bookbutler.info/vergleich/0321539354>

> Dann stellt man aber recht schnell fest, dass es eigentlich viel zu
> wenige Actions gibt, so dass man Glück haben muss, wenn man das
> gewünschte damit realisieren kann.

Da gibt es diverse Anlaufstellen im Netz, um nach Futter für den
Blechtrottel zu suchen. Thematisch sortiert IMO gut:

<http://automatoractions.com/>

> Ich werd' mir aber mal bei Gelegenheit die im Netz verfügbaren Actions
> ansehen - ich vermute, dass man die Fähigkeiten des Automators noch
> deutlich erweitern kann.

Klar :-)

Gruss,

Thomas

Sebastian Kaps

unread,
Jun 22, 2009, 3:58:44 PM6/22/09
to
Thomas Kaiser schrieb:

> Der Hilfetext, der links unten eingeblendet wird, wenn man die Aktion in
> Automator "anfaßt", hilft IMO aber schon ein wenig. Aber Du hast
> recht...

Ja, klar. Aber um den Hilfetext zu sehen, muss man jede Aktion erstmal
anklicken. Das meinte ich mit:

>> Man muss sich erstmal Zeit nehmen muss, die alle anzuschauen.

> BTW: Ich als jemand, der Automatisierung meist von Hand erledigt

> (also schnell ein Skript zusammentippt, bevor er drüber nachdenkt, was
> wie in Automator zusammengesteckt gehört, damit was zur Individual-
> lösung Äquivalentes dabei rauskommt), bin ja eh schon denkbar
> ungeeignet, die Vorzüge von Automator objektiv bzw. (aufgrund Ignoranz)
> auch nur umfassend darzulegen.

Ich programmiere eigentlich auch lieber, allerdings hatte ich bisher
noch keine Gelegenheit, mich mit AppleScript ausgiebiger zu befassen.
Da fand' ich den Ansatz von Automator schon ganz witzig.

Danke für die Links. Ich habe die mal gebookmarked und schau mir das bei
Gelegenheit mal an. Bis dahin kann's aber 10.6 werden... ;-)

--
Ciao, Sebastian

0 new messages