Exploring AirPrint

iOS 4.2 is out. At last. With this update, all iOS devices now run the same unified version of iOS.

By “at last,” I don’t mean to imply that the update arrived late. Apple promised the new version would be out before the end of November — and Apple delivered on its promise. However, there were a few last-minute bumps in the road before the updates arrived at our virtual doorstep. The iOS 4.2 GM version, originally expected to be out a week or two earlier, was dropped (purportedly due to late-discovered bugs). Instead, this week’s release version is iOS 4.2.1 (8C148).

That’s all history now — and will soon be forgotten.

What will be most remembered about this update is the introduction of two noteworthy new features that share a common partial name. I’m talking about Apple’s latest favorite buzzword: Air. As in AirPrint and AirPlay (it’s also part of MacBook Air, but that’s an entirely different story).

As its name implies, AirPrint allows you to print documents from your iPhone, iPad or iPod touch. This is something that almost everyone who owns an iOS device has requested. Today’s column starts with an in-depth look at AirPrint’s brief and already controversial history — and concludes with answers to common questions about how AirPrint works.

AirPrint options in Safari

AirPrint: Printer Sharing disappears. Between Apple’s initial announcement of AirPrint and the release of iOS 4.2.1 this week, Apple backpedaled on how AirPrint would work.

Apple’s September 15, 2010 press release states: “AirPrint is designed to support a wide range of printers from entry level inkjet printers to office laser printers. Additionally, iOS 4.2 devices can print to printers shared through a Mac or a PC.”

Sounds wonderful. The problem is that subsequently Apple dropped printer sharing from iOS 4.2. Actually, the omission was not due to a change in iOS 4.2 itself. Rather, the change was in Mac OS X 10.6.5, the recent update required for Apple’s implementation of iOS printer sharing to work.

As for the “wide range of printers,” it turns out that, at least for now, these are limited to the most recent models of Hewlett-Packard printers (those with ePrint support). Apple’s latest press release on iOS 4.2 states: “A selection of AirPrint enabled printers including the HP Photosmart, HP LaserJet Pro and HP Officejet will be the first to support printing direct from iOS devices.” The press release doesn’t rule out the possibility of printer sharing. It simply doesn’t mention it one way or the other.

The absence of printer sharing is not a trivial limitation. It means that, out of the box, AirPrint in iOS 4.2 is useless to almost all iOS device owners. Why? Because only a small percentage of users own one of the required HP printers.

AirPrint: Printer Sharing returns. Before you start pounding your fist about this AirPrint disappearing act, the story has a happy ending. Within a day or so of the discovery of the change in AirPrint’s status, hackers provided a way to bring the feature back via a minor modification to Mac OS X 10.6.5. You only needed to add three files to the system software.

Even better, within the next week (and still prior to the official release of iOS 4.2.1), programs appeared that enable AirPrint printer sharing without any system software modification. My current preferred choice is Printopia. Printopia offers features that go beyond what Apple’s intended implementation could do. For example, you can “print” files (as PDFs or JPGs) from an iOS app to your Dropbox account. As a bonus, these programs enable AirPrint sharing with any version of Mac OS X 10.5 or 10.6. So, if you’re not upgrading to 10.6.5 for some reason, you can still use AirPrint. Very slick.

If you use more than one printing sharing solution, AirPrint should recognize and work with all of them. For example, I have the system hack installed on my MacBook Air and Printopia installed on my Mac Pro. When I select Print from my iPhone, I can access my networked printers via either method. That is, the same printer is listed twice, once via the Air and once via the Pro. This likely means that, if and when Apple ever officially enables sharing over AirPrint, utilities such as Printopia should still work and be able to supply added-value features.

There is one obvious downside to printing via sharing. It only works if your Mac is currently powered on, awake, and connected to the printer’s network. You can’t print directly from an iOS device to a printer. Still, it’s much much better than having no print capability at all.

I’ve tested out AirPrint’s printer sharing from my iPhone and iPad to both of my printers (and old HP LaserJet and a new Canon inkjet). It’s been working flawlessly thus far! 

If AirPrint’s Printer Sharing works so well via third-party solutions, why did Apple remove it? No one knows for sure. More precisely, no one who knows is saying. There was initial speculation (which now appears unfounded) that Apple dropping Sharing support because of bugs that could not be fixed in time for a November release. Other popular theories are that the feature was dropped due to some patent dispute or because Apple’s implementation did not conform to IPP (Internet Printing Protocol) standards. Honestly, I have no idea what the true story is.

Why all the secrecy? Why doesn’t Apple just tell us why they did what they did? My best answer here is: That’s Apple for you. I don’t see how it would be detrimental for Apple to issue some brief statement that explains what happened. Instead, Apple is attempting to rewrite history, behaving as if Apple never planned to include the feature in the first place. None of their current documentation mentions printer sharing. When asked about AirPrint printer sharing, Apple PR simply avoids answering the question. Although I find this tactic to be irritating and silly, I accept it as a knee-jerk part of Apple’s culture.

Will Apple try to block the third-party AirPrint Sharing solutions? Given that Apple dropped official support for this AirPrint feature, it’s reasonable to suppose that they wouldn’t want someone else to add it back. If so, Apple might attempt to block the third-party implementations (probably via a change to iOS itself) — in the same way that Apple attempts to block jailbreaking.

There’s no telling what Apple may do in the future. Maybe an iOS 4.2.2 (or later) update will include such a block. However, I predict that it will not. I believe Apple is content to let these third-party solutions survive. If there is some legal reason behind Apple’s blockade to printer sharing, Apple may even be quietly glad to have these third-party alternatives available. In any case, I suspect that, as soon as Apple resolves whatever led to its dropping the feature in the first place, we will see its official return.

More generally, I can’t pass up this opportunity to take a familiar dig at Apple — specifically, at one downside of the closed nature of iOS. The reason we have AirPrint printer sharing available today is because of third party Mac utilities and hacks. Because they are on the Mac, these are solutions that Apple has no direct control over. If, instead, a solution required that developers get an app approved for the iOS App Store, I am certain that we would not yet have any AirPrint printer sharing. Such an app might well never get approved.

Why should we need printer sharing at all for AirPrint? Why can’t we just print directly from an iOS device to any printer? The answer is: printer drivers. Without the driver software, no printing is possible. The needed printer driver software is built-in to HP’s ePrint printers. That’s why you can print to them directly. More generally, a collection of drivers is included as part of Mac OS X (located in /Library/Printers). These are the drivers used for printer sharing via AirPrint.

The “problem” with direct printing from iOS devices is that there are no printer drivers built-in to iOS. To offer a complete set of drivers in iOS, akin to what exists for Mac OS X, would likely be impractical. The needed files could easily exceed 2GB, too large for the limited data storage on iOS devices. Apple could probably include a generic network Postscript printer driver in iOS without too much hassle. But not many iOS users have such a printer.

What about PC/Windows users? Is there a third-party AirPrint Sharing solution for them? As far as I know, no. [Update: This webpage describes how to enable AirPrint on Windows. Also check out the Observer comments below.]

How do you print from an iOS device via AirPrint? After the required software has been installed and set up on your Mac, the main thing you need to do is locate the Print command in the desired iOS app (assuming the app supports printing).

AirPrint is not automatically enabled in every iOS app. To allow printing, an app needs to be updated to include AirPrint support. Print is currently supported in Safari, Mail and the just-updated iWork apps for the iPad (Pages, Keynote and Numbers). As of this writing, most other apps have not provided the required update. This includes several of Apple’s own apps. Of course, for many apps, there is little if any need for a Print option. You don’t really need it in Apple’s Voice Memos for example. Still, I would like to see it in apps such as Apple’s Notes. I expect relevant third-party apps to add printing support in their next update.

You may have to search to find the Print command. In Safari, to access the menu that contains the Print command, you tap the arrow icon found to the left of the Address Bar; this brings up the menu with the Add Bookmark and Mail Link to This Page items (as seen in the Figure near the top of this article). In Mail, you tap the somewhat different arrow icon; this is the icon that brings up the Reply and Forward items. In the iWork apps, you’ll find the Print command in the Tools menu (accessed by tapping the wrench icon, as seen in the Figure below, taken from Keynote). In all cases, if you tap the Print item, you bring up the Printer Options menu.

Looking to the future, I’d like Apple to add some consistency here — analogous to the Mac, where the Print command is always found in a program’s File menu.

AirPrint options in Keynote

Printer options vary from app to app. From the Printer Options menu of most apps (such as Safari, Mail and Pages), you select the desired printer and how many copies you want printed. That’s all you can do.

A critical omission is an option to select a print range. I have already had several instances where I wanted to print just the first page of a long Web page in Safari. No can do. Such an option is possible. In fact, a Page Range option is already included in Keynote (perhaps this addition was made easier because of Keynote’s clearly defined pages/slides).

iWork’s Numbers app offers something completely different: tapping Print brings up a Print Preview display (seen in the Figure below). From here, you can modify various settings, including adjusting a document’s orientation and size. When satisfied, you tap Print Preview’s Print command.

Print options in Numbers

After finally completing a print request from any app, a PrintCenter app automatically launches. You can access this app from the multitasking bar. From the app, you can monitor the progress of your printjob(s). When done sending current printjobs, the app quits itself.

At this point, you’re done. Go to your printer, grab your printed document and be impressed.