Enable Sharing of Printers via Apple AirPrint

This is relevant only after you have updated to Apple IOS 4.2.x on your iPhone, iPod Touch or iPad device. With this release, the ability to print has been added, but it takes a bit of configuration to setup the printer sharing itself as it relies on the Apple Bonjour service/protocol!

I assume that this is all trivial if you are using a networked printer, particularly if it’s wireless…. but if you have a printer that is shared by another computer on the network, you’ll have to do the following.

  1. Install iTunes 10.1 (or newer) on the PC
  2. Install IOS 4.2.1 (or newer) on the mobile device
  3. Download AirPrint.zip (airprint.exe, libairprint.dll, XpdfPrint.dll)
  4. Unzip it.
  5. Make a folder, “C:\Program Files (x86)\AirPrint\” (NOTE: without the x86 for 32bit)
  6. Copy the files to “C:\Program Files (x86)\AirPrint\” (NOTE: without the x86 for 32bit)
  7. Run “cmd.exe” as administrator
  8. Run the following commands (There should be a space between ‘=’ and ‘”‘)
    • Windows 64bits:
      sc.exe create AirPrint binPath= "C:\Program Files (x86)\AirPrint\airprint.exe -s" depend= "Bonjour Service" start= auto
      sc.exe start AirPrint
    • Windows 32bits:
      sc.exe create AirPrint binPath= "C:\Program Files\AirPrint\airprint.exe -s" depend= "Bonjour Service" start= auto
      sc.exe start AirPrint
  9. Let Windows Firewall allow AirPrint to communicate on the networks (Double click on the airprint.exe)
  10. Now, open Safari or any other printing application on your device and try to Print, the first time will have to select the printer, and you may need to give user credentials for the printer.

REFERENCES:

Cheers!

Preventing portions of a webpage from printing

A colleague asked me about my solution for this just the other day, here’s the quick solution.

  1. Add a CSS class attribute to the items.  Assuming they are <div>’s for header and footer, they would look like my example below, but you can add the ‘no-print’ class to anything you don’t want printed.
  2. Add a stylesheet with media=”print” to change the visibility and/or display attributes of that class.
  3. With a little more work, you could add a ‘no-screen’ solution too… this would be advantageous in cases where you may need to mask an account number or SSN.

<html>
<head>
<title>Example</title>
<link media=”print” href=”print.css” type=”text/css” rel=”stylesheet” />
</head>
<body>
<div class=”no-print”>This is your header</div>
<div>this is the body</div>
<div class=”no-print”>this is your footer</div>
</body>
</html>

print.css could then contain:

.no-print { display:none; }

Cheers!