I bought a Polaroid PoGo Printer the other day. It was on sale at “The Shack” for $29.99. I’d always been intrigued because its little and battery powered. The printer uses ZINK technology. Its inkless — the color is embedded in the paper and appears when the printer heats the paper. More about ZINK can be found here.
The printer connects via USB to Pict-Bridge enabled cameras and via Bluetooth to cameras and PCs. One thing it does not do, however, is connect to an iPhone! So I set out to see if I could print to the PoGo printer from my iPhone.
The first way is to copy the picture to a computer and then print from there — but that just isn’t fun enough. So I decided to see if I could at least automate this process and keep it wireless.
The picture’s path would still be iPhone to computer to printer. This is the process I used:
1. Take picture on iPhone
2. Email picture to myself from iPhone
3. Use mail’s rules to detect the picture
4. Have the mail rule run an AppleScript to send the picture to the printer
So — next I had to figure out the AppleScript and the rule. I find AppleScript not particularly intuitive. Figuring out how to get the picture from the email and then send it to the printer via Bluetooth was basically a process of Google Search, trial, and error. In the end, I cobbled it all together. My solution is fairly fragile. It barely works, but it does work.
Here’s the AppleScript:
using terms from application "Mail" on perform mail action with messages newMessages tell application "Mail" (* Only process 1 message. Note: rule ensures the message has at least 1 .jpg attachment *) set firstMessage to item 1 of newMessages set theAttachment to first item of the firstMessage's mail attachments set theAttachmentPath to ((path to home folder) as text) & "test:" -- Make the file name unique-ish by adding a number representing the time to the file name. This is because iPhone sends pictures as photo.jpg. set theAttachmentFileName to theAttachmentPath & (time of (current date) as string) & theAttachment's name save theAttachment in theAttachmentFileName -- Use Bluetooth File Exchange to send the file to the printer. I could only make this work by using the numeric name for the printer. This is found from getting additional info about the device from Bluetooth preferences. -- You have to pass the file name as a POSIX formatted string. tell application "Bluetooth File Exchange" send file POSIX path of theAttachmentFileName as string to device "00-04-48-13-95-11" end tell (* Bluetooth File Exchange *) -- Make sure the file is fully transferred to the printer before deleting it. delay 30 tell application "Finder" delete theAttachmentFileName end tell (* Finder *) end tell (* Mail *) end perform mail action with messages end using terms from
In order to use the script, you need to create a folder on your Mac called “test”. This folder needs to be at the top level of your user (Macintosh HD:<username>:test). You can go thru the script and change the name and location of the folder, if you want. Also, I saved the script into that folder — just to keep everything together.
Next you need to create a rule in Apple’s mail.app. Here’s the rule I created:
Note: You also need to create a mail folder called “temp”. The messages are stored there. You can delete them after the image has been printed.
To use the rule and script:
1. Make sure your printer is paired with your Mac. Instructions on pairing the Polaroid PoGo printer with a Mac can be found here.
2. Make sure the printer is fully charged, turned on, and connected to your Mac.
3. Make sure mail.app is running on your Mac
4. Take a picture with your iPhone (or you can use one from your photo gallery on the iPhone).
5. Click on the “share” button when viewing the photo, and choose “Email Photo.”
6. Send the photo to yourself (the account where you created the rule in mail.app)
7. Once the photo is sent from your iPhone, and received by your Mac — printing should automatically begin.
My script will only print the first photo attached to an email. Also, you should not send a second photo until the first one is completely printed. Things will not work if the printer battery is nearly depleted or the printer doesn’t have any paper.
If anyone has any suggestions on how to improve this process let me know.