Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Software>pdf / ps drucken automatisieren

pdf / ps drucken automatisieren

grobhart
grobhart20.04.0616:37
herrje - da dachte ich, ich könnte mal einen einfachen automator / applescript ablauf "entwickeln" - und scheitere kläglich.

mein vorhaben ist: eine ganze reihe von files (momentan sind es letterstar files mit der endung .letter) in ein pdf umzuwandeln!
klingt doch simpell...dachte ich...

statt aber dutzende male den druckdialog aufzurufen und dort "als pdf speichern" zu wählen, hatte ich gehofft, dass irgendwie automatisieren zu können.
das pdf soll im gleichen ordner wie die ursprungsdatei liegen, der name gleich bleiben.

leider bin ich aber weder mit automator, applescript oder ordneraktionen weiter gekommen - kenne mich in diesem bereich leider auch nur sehr schlecht aus.
googlen hat mir auch keine erkenntnisse gebracht..."pdf", "script" und "drucken" sind allerdings auch undankbare suchbegriffe...=(

kann mir jemand sagen, ob sich das realisieren lässt, wenn ja, wie - oder ob das grundsätzlich nicht geht?!
„pixel & prints – Agentur für Design & Druck in 52382 Düren (Niederzier)“
0

Kommentare

Josef
Josef20.04.0623:55
Ich verwende für so etwas QuicKeys. Ist sehr praktisch. Aber ich weiß nicht, ob es sich lohnt, alleine deswegen das Programm zu kaufen und zu erlernen...
0
grobhart
grobhart21.04.0615:58
nett gemeineter tipp, aber das ist mir tatsächlich zuviel geld. außerdem könnte ich mir vorstellen, dass es auch mit bordmitteln funktionieren "könnte" - kann aber auch sein, dass das aussichtslos ist (und das würde ich gerne wissen, BEVOR ich da noch mehr zeit investiere...)

kein versierter scripter am start?
„pixel & prints – Agentur für Design & Druck in 52382 Düren (Niederzier)“
0
Josef
Josef21.04.0623:54
Kann gut sein, daß es auch mit Bordmitteln geht, ich wüßte aber nicht, wie.

Falls Du keine andere Lösung findest: Es gäbe auch eine 30-Tage-Testversion von QuicKeys...
0
_mäuschen
_mäuschen22.04.0600:48
Die drei property an Deine Bedürfnisse anpassen

-- file extension die zu entfernen ist, um dann als odf zu speichern
property trim_chars : ".rtf"
-- nur files dieses typs
property extension_list : {"rtf"}
-- Das Programm das Drucken soll
property prog_name : "TextEdit"


-- ACHTUNG,
-- nicht alle Programme verstehen die UI Variable > position
-- die printPDF Routine ist nur mit Safari, Mail und TextEdit getestet

global counter, file_name

on run
display dialog "Save as PDF" & return & return & ¬
"Drag files or folders of files onto this droplet to save them as PDF. " & ¬
return & return & ¬
"Supported file types include > rtf files." buttons {"OK"} default button 1
end run

-- This droplet processes both files or folders of files dropped onto the applet
on open these_items
set counter to 0
repeat with i from 1 to the count of these_items
set this_item to (item i of these_items) as alias
set the item_info to the info for this_item
if folder of the item_info is true then
process_folder(this_item)
else if (alias of the item_info is false) and ¬
(the name extension of the item_info is in the extension_list) then
trim_item(this_item)
process_item(this_item)
end if
end repeat
display dialog (the counter as string) & " items have been saved as PDF." buttons {"•"} default button 1 giving up after 3
end open

-- this sub-routine processes folders
on process_folder(This_folder)
set these_items to list folder This_folder without invisibles
repeat with i from 1 to the count of these_items
set this_item to ((This_folder as text) & (item i of these_items)) as alias
set the item_info to the info for this_item
if folder of the item_info is true then
process_folder(this_item)
else if (alias of the item_info is false) and ¬
(the name extension of the item_info is in the extension_list) then
trim_item(this_item)
process_item(this_item)
end if
end repeat
end process_folder

on trim_item(this_item)
set the item_info to the info for this_item
set file_name to the name of item_info
set x to the length of the trim_chars
repeat while file_name ends with the trim_chars
set file_name to characters 1 thru -(x + 1) of file_name as string
end repeat
end trim_item

-- this sub-routine processes files
on process_item(this_item)
tell application prog_name to open this_item
tell application "System Events"
tell application process prog_name
set frontmost to true
keystroke "p" using {command down}
repeat until window 1 exists
delay 0.1
end repeat
set pdf_pos to position of UI element 1 of UI element 5 of UI element 4 of sheet "Drucken" of window 1
set new_place to {(item 1 of pdf_pos) + 30, (item 2 of pdf_pos) + 30}
click at pdf_pos
delay 1
click at new_place
delay 1
keystroke file_name
delay 1
click button "Sichern" of window "Sichern"
delay 1
keystroke "w" using {command down}
end tell
end tell
set counter to counter + 1
end process_item
0
_mäuschen
_mäuschen25.04.0613:43
Funktioniert dies
0
grobhart
grobhart25.04.0615:30
nein - allerdings bezweifel ich, dass ich alles richtig gemacht habe.
ich bin selbst ja alles andere als ein script-checker!

diesen hinweis hier z.b. weiss ich nicht umzusetzen:
-- file extension die zu entfernen ist, um dann als odf zu speichern
property trim_chars : ".rtf"
-- nur files dieses typs
property extension_list : {"rtf"}
-- Das Programm das Drucken soll
property prog_name : "TextEdit"

ich konnte nur an einer stelle des scripts überhaupt das wort "rtf" finden und habe dort die extension erstezt (.letter); also so:

on run
display dialog "Save as PDF" & return & return & ¬
"Drag files or folders of files onto this droplet to save them as PDF. " & ¬
return & return & ¬
"Supported file types include > letter files." buttons {"OK"} default button 1

nochmal deutlich: ich möchte letterstar dateien mit der endung .letter automatisch als pdf drucken (damit ich die pdfs mit devonthink verarbeiten kann > devonthink kann das .letter format nicht anzeigen..)

und allgemein habe ich jetzt vermutet, dass ich dein script aus der website in ein applescript fenster kopieren, irgendwelche einträge ändern soll und das ganze dann als droplet (apple script programm) abspeichern soll, um dann per drag and drop meine files umwandeln zu können...
hab ich die theorie soweit richtig verstanden?

auf jeden fall danke für dein bemühen - vielleicht kannst du mir ja noch helfen, dass ich die kurve kriege mit diesen ollen letterstar dateien..
„pixel & prints – Agentur für Design & Druck in 52382 Düren (Niederzier)“
0
_mäuschen
_mäuschen25.04.0616:05
-- file extension die zu entfernen ist, um dann als pdf zu speichern
property trim_chars : ".rtf"
-- nur files dieses typs
property extension_list : {"rtf"}
-- Das Programm das Drucken soll
property prog_name : "TextEdit"

Hier ist zu ändern

.rtf @@ .letter
rtf @@ letter
TextEdit @@ Name des Programms welches .letter öffnet
0
grobhart
grobhart25.04.0616:45
ach so - das gehört mit zum script
ich dachte, das geht nur von "on start" bis "end process_item"

allerdings funzt es bei mir trotzdem nicht.
auch nicht mit rtf...

es erscheint der druckdialog (wenn ich einzelne rtf dateien nehme) und somit bleibt mir lediglich das öffnen der datei erspart.
wenn ich nen ganzen folder mit rtfs auf das droplet ziehe, funktioniert es überhaupt nicht..

tut mir leid - bin offenbar zu blöd dafür.
wie wärs, wenn du mir deine droplets per email schicken würdest.
dann hätte ich eine funktionierende grundlage, um weiter mit den letter star files zu testen...?
„pixel & prints – Agentur für Design & Druck in 52382 Düren (Niederzier)“
0
_mäuschen
_mäuschen25.04.0617:15
grobhart, mail is raus

good luck
0
Gerundium
Gerundium25.04.0618:03
_mäuschen
click button "Sichern" of window "Sichern"

... etc.

Heißt das nicht, dass vorher die Skriptsteuerung für das GUI aktiviert werden muss? Oder verstehe ich da etwas falsch?
0
_mäuschen
_mäuschen25.04.0619:51
Gerundium, ja, richtig. Man könnte den script noch mit

tell application "System Events"
if UI elements enabled then

-- do something

else
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.universalaccess"
display dialog "UI element scripting is not enabled. Check \"Enable access for assistive devices\""
end tell
end if
end tell

erweitern.


Aber. Mittlerweile habe ich rausgefunden, warum der script bei @@ grobhart nicht funktioniert.

Die .letter files sind packages
somit verheddert sich die processes_folder routine

grobhart hat 'ne neue mail mit einem abgeänderten, funktionierenden script erhalten:-D
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.