Mail: angehängte PDFs direkt drucken als Regel…

Ist eine leicht erweiterte Version dieses Skriptes….

Update 15.02.2011

Wie von Markus gemeldet, werden so keine ausgefüllten Formulare gedruckt… um GUI-Skript zu umgehen wird nun pdftk genutzt um eine druckbare Version zu erstellen, ausserdem wird nun das Druckprogramm ausgeblendet (ist zwar nicht die optimale Lösung, druckt aber zuverlässiger als über lpr via shell scripting)

— hubionmac.com 2010-09-03

— script to be added to a Apple Mail rule

–saves PDF attachmens of new mails into a tmp folder and prints them with standard printer

## Update 15.02.2011

## – script now also prints filled pdf forms (requires pdftk to flatten forms)

## – printing app window is hidden after launch (pomps up a milsec… )

on perform_mail_action(info)

tell application “Mail”

tell application “Finder” to set mypath to (name of startup disk & “:tmp:”) as text

set theMessages to |SelectedMessages| of info

repeat with thisMessage in theMessages

try

repeat with a in (every mail attachment of thisMessage)

set current_a_name to name of a

if current_a_name ends with “.pdf” then

set current_a_name to my checkname_with_pdf_suffix(current_a_name, mypath as alias, false)

save a in mypath & current_a_name

##print pdf form workaround, this requires pdftk installed!!!

set current_a_name2 to my checkname_with_pdf_suffix(current_a_name, mypath as alias, false)

do shell script “/opt/pdflabs/pdftk/bin/pdftk ” & quoted form of POSIX path of ((mypath & current_a_name) as alias) & ” output ” & POSIX path of ((mypath) as alias) & quoted form of current_a_name2 & ” flatten;rm ” & quoted form of POSIX path of ((mypath & current_a_name) as alias)

set current_a_name to current_a_name2

##workaround –END–

my print_file_with_standard_printer(POSIX path of ((mypath & current_a_name) as alias))

else

–display dialog current_a_name

end if

end repeat

on error msg

do shell script “echo ” & quoted form of msg & ” | cat>>~/Desktop/MailscriptErrorLog.txt”

end try

end repeat

end tell

end perform_mail_action

on checkname_with_pdf_suffix(n, D, looped)

tell application “Finder”

set thefiles to name of every item of (D as alias)

end tell

if thefiles contains n then

if looped = false then

set n to ((characters 1 through -5 of n) & ” 1″ & (characters -4 through -1 of n)) as text

my checkname_with_pdf_suffix(n, D, true)

else

set tmp to (last word of ((characters 1 through -5 of n) as text) as integer)

set tmpcount to (count of characters of (tmp as text)) + 5

set tmp to tmp + 1

set n to ((characters 1 through (-1 * tmpcount) of n) & tmp & (characters -4 through -1 of n)) as text

my checkname_with_pdf_suffix(n, D, true)

end if

else

return n

end if

end checkname_with_pdf_suffix

on getStandardPrinter()

tell application “Printer Setup Utility”

return name of current printer & “.app”

end tell

end getStandardPrinter

on print_file_with_standard_printer(thefile)

— thefile is a unquoted POSIX path

–assumes that the printer app is stored in ~/Library/Printers/ not /Library/Printers/

tell application (my getStandardPrinter()) to activate

tell application “Mail”

do shell script “open -a ~/Library/Printers/” & quoted form of (my getStandardPrinter()) & ” ” & quoted form of thefile

##hide the printer app

tell application “Finder” to set visible of process (characters 1 through -5 of (my getStandardPrinter()) as text) to false

end tell

end print_file_with_standard_printer

3 thoughts on “Mail: angehängte PDFs direkt drucken als Regel…

  1. jannis says:

    Hi,

    gibts auch die Möglichkeit Anhänge mit .doc oder .docx direkt zu drucken?

  2. Hallo
    Wir sind eine Behindertenorganisation aus der Nordwestschweiz und wollten das tolle script für den Ausdruck des PDF-Anhanges nutzen. Nun haben wir das Problem, dass das angehängte PDF ein ausgefülltes Formular ist, dass offensichtlich mit dem PDF-Reader (oder Acrobat pro) geöffnet werden muss, damit die eingebenen Infos sichtbar sind (das Script druckt nur das leere Formular aus).
    Was müsste man am script ändern ???
    besten Dank im voraus für die Hilfe.
    Markus Schneiter, IVB Behindertenselbsthilfe beider Basel

  3. hubi says:

    Nun, das schöne an dem Skript ist, dass es ohne GUI-Skript auskommt und somit komplett in Hintergrund arbeitet… könntest Du mir vielleicht ein solches, ausgefülltes PDF mal zum Testen per Mail schicken.
    Vielleicht kann man den Acrobat Reader ja auch ohne GUI-Skripting dazu bewegen ;-)

Leave a Reply