Montag, 25. März 2013

AppleScript zur automatisierten PDF-Bearbeitung mit pdfsam

Hier noch ein Skripting-Tipp:

Für einige Aufgaben verwende ich lieber Kommandozeilenwerkzeuge oder Skript statt einer GUI.
Bei dem Trennen von PDFs hilft mir beispielsweise die praktische App pdfsam [1] (ehemals PDF Split & Merge) weiter.
Die Applikation stellt neben der absolut hässlichen und unhandlichen Java-Benutzeroberfläche auch Kommandozeilenwerkzeuge im Applikaitonsbundle zur Verfügung.

Hier ein kleines Beispiel wie man Hilfe einer AppleScript-Extension für Alfred das aktuell im Finder ausgewählte PDF an einer bestimmten Seite (Parameter q im Quelltext) in zwei Teile trennen lässt:

on alfred_script(q)
tell app "Finder"
set theFile to selection as alias
set fileName to the quoted form of the POSIX path of theFile
set thePath to container of item theFile as alias
set pathName to the quoted form of the POSIX path of thePath
do shell script "/Applications/pdfsam.app/Contents/Resources/Java/bin/run-console.sh -f " & fileName & " -o " & pathName & " -s SPLIT -n "& q &" split "
end tell
end alfred_script

 

So sieht der Aufruf dann aus: Die aktuell im Finder ausgewählte Datei wird an daraufhin an der gewünschten Stelle getrennt.

Alfred Split

Natürlich kann man auf die beschriebene Art und Weise auch andere Manipulationen an PDFs durchführen. Die Kommandozeilen-Version von pdfsam lässt kaum Wünsche offen.

[1] http://www.pdfsam.org/


Safari Einstellungen per AppleScript setzten

Die Möglichkeiten in Mac OSX zur Automatisierung von Apps via AppleScript, Automator-Workflows, Shell-Skripten, usw. sind wahrlich enorm.

Hier ein kleines Beispiel zur AppleScript-gesteuerten Änderung von Safari-Einstellungen, speziell der De-/Aktivierung des Ladens von Bildern.
Die wenigsten werden wohl heute wohl noch aufgrund geringer Bandbreite die Bilder beim Surfen deaktivieren, allerdings kann dies trotzdem ab und an ganz hilfreich sein, wenn man sich etwa auf die Inhalte konzentrieren will, und soll letztlich ja nur als Beispiel dienen.

Hier mein AppleScript:

activateapplication "Safari"
tell application "System Events"
tell process "Safari"
click menu item "Einstellungen …" of menu 1 of menu bar item "Safari" of menu bar 1
click button "Erscheinungsbild" of tool bar 1 of window 1
tell checkbox 1 of group 1 of group 1 of window "Erscheinungsbild"
click
delay 1
--tell application "System Events"
--if (name of processes) contains "Safari" then tell application "Safari" to quit
--end tell
--or
tell application "System Events"
if (name of processes) contains "Safari" then tell application "Safari" to close window "Erscheinungsbild"
end tell
end tell
end tell
end tell 

Wie man sieht, müssen zur GUI-Automatisierung die deutschen Menütitel und Bezeichnungen verwenden werden ("Einstellungen ...", "Erscheinungsbild"), während der eigentliche AppleScript-Code in Pseudo-Englisch steht.  

Das (nach den persönlichen Bedürfnissen) angepasste AppleScript speichert man im AppleScript-Editor am besten als ausführbare App, so kann man sie bequem via Spotlight, o. Ä. aufrufen – oder fügt den Code als Extension zu einem Launch-Manager wie Alfred [1] oder Qucksilver [2] hinzu.

[1] http://www.alfredapp.com/

[2] http://qsapp.com/