A while back I made this little Automator script to convert Microsoft Word doc and docx files to PDF. It’s useful for when you are sent a bunch of Word files for committee work. Opening PDFs in Preview is nice and hassle-free. Struggling with Word is not.
It’s not my own work, I just put it together after googling around a bit. I’ll put it here for anyone to use.
To get it working:
- Open Automator. Choose Template Service and you need to check: Service receives selected files and folders in Finder.app
- Set the actions: Get Folder content and Run AppleScript (this is where the script goes)
- Now Save the workflow. Suggested name Doc to PDF.
Now to run it:
- Select the doc/docx file(s) in the Finder window.
- Right-click and look for the service in the contextual menu. This should be down the bottom near “Reveal in Finder”.
- Run it.
If you want to put it onto another computer. Go to ~/Library/Services and you will find the saved workflow there. Just copy to the same location on your other computer.
Known bug: Word has to be open for the script to run. It also doesn’t shut down Word when it’s finished.
Here is the code.
property theList : {"doc", "docx"} on run {input, parameters} set output to {} tell application "Microsoft Word" to set theOldDefaultPath to get default file path file path type documents path repeat with x in input try set theDoc to contents of x tell application "Finder" set theFilePath to container of theDoc as text set ext to name extension of theDoc if ext is in theList then set theName to name of theDoc copy length of theName to l copy length of ext to exl set n to l - exl - 1 copy characters 1 through n of theName as string to theFilename set theFilename to theFilename & ".pdf" tell application "Microsoft Word" set default file path file path type documents path path theFilePath open theDoc set theActiveDoc to the active document save as theActiveDoc file format format PDF file name theFilename copy (POSIX path of (theFilePath & theFilename as string)) to end of output close theActiveDoc end tell end if end tell end try end repeat tell application "Microsoft Word" to set default file path file path type documents path path theOldDefaultPath return output end run
—
Tips from the blog is a series and gets its name from a track from Black Sunday by Cypress Hill.
That is so useful. Thank you very much for posting.
I recently had a bunch of PDFs/DOCs/DOCXs sent to me in >100 subfolders. To convert these as a batch. I made a new workflow for Automators as follows:
1. Get Specified Finder Items (drag and drop top folder here)
2. Get Folder Contents (check box for Repeat for each subfolder found)
3. Filter Finder Items
– Find files where Any are true
– File extension is doc
– File extension is docx
4. Run Applescript (paste in the script from this post).
Open Word and Run the Workflow.