Once you've bought a wireless printer, you never want to go back to the dark days of having to plug in all the time. But good wireless printers are expensive, and many routers that let you make network printers out of USB ones don't necessarily do all the driver-work for you.
With a $25 RPi Model A, a $2 power supply, a $5 SD card and a $5 USB Wifi dongle (be sure to find one supported in Raspbian or other OSes) you can turn any printer from the CUPS printer list into a wireless network printer. A lot of added functionality for under $40!
If you look for a laser printer from the early 2000s on that list, chances are it will be heavily supported and very efficient with toner, not to mention cheap.
Step 1: Step 1: Set Up Your OS
This is pretty simple stuff if you know anything about the RPi, so I won't tell you much about it, but if not the foundation has made an awesome instructional page.
Any OS should do, but make sure it has WICD for easy setup!
If you can't find it on your OS, here is a good guide to setting it up from scratch.
Step 2: Step 2: Setting Up CUPS to Print
CUPS is a printer driver to make Linux work more like Windows with printers.
To install it, type this into terminal:
sudo apt-get install cups
After that add yourself to the CUPS admin files, with
sudo usermod -a -G lpadmin username
Since CUPS doesn't have a standalone GUI, you connect to it with a web browser. Find your IP address by typing in
ip addr show
Then enter into a web browser your ip address followed by a colon then CUPS default port number of 631.
Click the "printers" tab and find the driver for your printer model. Install it, then print a test page.
Step 3: Step 3: Sharing the Printer
Once you have the printer working with test pages, you need to go to the printer's profile then under administration set it to sharing.
Step 4: Finished!
Your PiPrinter should be showing up from any other machine on the network as if it were a shared printer. (Note the @RaspberryPi)
Rename it and give it a location if you want! Use "Generic Postscript printer" on your connected machines since CUPS on the Pi is handling the printer-computer driver relations.