In this age of high-speed Internet connections and home networking, one of the most obvious tasks to accomplish is to share an existing printer between two or more PCs. In a traditional home-office or small-office scenario, you typically accomplish this task by attaching the printer to one of the PCs, then use Windows' built-in printer-sharing functionality to share that printer with other users on other PCs.
This functionality works fine for many people and is fairly easy to set up, with one caveat: Because parts of some printer drivers can access Windows' core code, called the kernel, only users with administrator-level access can install a printer. Once a printer is set up and shared, however, users with limited access privileges should be able to connect and launch print jobs. This scenario is called local print sharing.
SMB and SAMBA
Local print sharing introduces other problems when some of the machines on your home network use non-Windows OSs. Windows typically uses a networking technology called Server Message Block (SMB) to share printers and file folders (and other low-level resources) with other Windows systems on a network. For Linux or Mac OS X systems to recognize and correctly work with Windows-shared printers, these systems need to understand SMB.
And you might be surprised to discover that both systems do support SMB—to different degrees. Linux, with its hearty networking background and development history in the shadow of Windows, does a fairly seamless job of working with Windows shared printers. Using an open-source version of SMB imaginatively called SAMBA, Linux clients and servers can connect to most Windows printers and to Windows shared file folders. Alternatively, you can configure Linux to share folders and printers of its own, and Windows users will see those resources on the network as if they were available from Windows machines. Nice.
Mac OS X also includes SAMBA, but configuring this system to work with Windows shared printers is difficult at best—or impossible, depending on the printer you're sharing. (Like Linux, Mac OS X also offers bidirectional file folder sharing, but it unfortunately dumps hidden files in every shared folder you visit, making it a slightly less friendly—and messier—network denizen.) Although you can sometimes share a printer connected to a Mac with Windows users, setup is difficult. First, the printer must be compatible with both Mac OS X and Windows. Second, you must set up the printer on all Windows machines on the network, to ensure that they have the correct drivers. (Depending on the printer, this step might not be necessary on Windows XP machines.) Third, you'll need to enlist the aid of a third-party utility, such as the Common UNIX Printing System (CUPS), Ghostscript, or Gimp-print—three open-source solutions whose complexities go far beyond the scope of this article but highlight the problems with local printers on a home network.
On the reverse side of the equation, sharing a printer connected to a Windows machine with Mac OS X users is equally problematic and involves the same open-source tools mentioned above. I've had spotty results trying to share a parallel-port-connected HP LaserJet and a USB-connected Canon photo printer with non-Windows machines on my network, and I suspect others will also find it a frustrating exercise. Oddly enough, if you share a printer on Mac OS X or Linux through SAMBA, it will typically work fine on other Linux and Mac OS X boxes. Go figure. For whatever minority of the population that has that configuration—enjoy. The rest of us, however, can't benefit from this compatibility.
The solution to this problem is straightforward. Rather than purchase a printer that connects directly to a PC, you could instead buy one that connects directly to the network through an Ethernet connection. This approach has benefits that go beyond heterogeneous compatibility concerns. First, a locally shared printer will work only when the PC to which it's connected is turned on. Depending on your setup, that limitation might be a bit much to ask. From experience, I can say that it's frustrating to try and print a document from one room, only to discover that the PC in the other room—the one that's connected to the printer—has been turned off, necessitating a lengthy wait while you start it back up. With a network-attached printer, only the printer has to be on. All of your other PCs can be turned off.
Second, shared printers have to be, well, shared. A bit of administrative overhead is involved with sharing a printer, both on the sharing (server) side and on the share (client) side. With a network-attached printer, you need only set up the client side on each machine. And if you're running a modern OS such as XP, you'll typically need the driver for such a machine to be preinstalled so that you don't need to dive into your desk looking for a setup CD.
Network-attached printers have some problems, however. The most obvious is cost: Whereas you can buy a low-end laser printer these days for $150 to $200, network-attached printers typically start at about $1000—quite a premium. But remember that such a printer typically comes with additional features that help justify the cost: They're better made, able to handle massive print jobs, more readily expandable, and capable of holding more paper. For a home office or small office that's churning out large numbers of documents between two or more PCs, a network-attached printer is typically a great buy.
A starter model, such as HP's LaserJet 2300n ($999), will serve most home-office and small-office environments for years. This machine offers 1200x1200dpi black-and-white printing, outputs 25 pages per minute, and prints as many as 50,000 pages a month. The HP also offers two paper trays and is expandable to three, and it supports multiple paper sizes.
Other Printing Solutions
Of course, network-attached laser printers won't solve everyone's problems. Some people have different needs. Perhaps you need an all-in-one printer that includes faxing and photocopying capabilities, or a photo printer. These types of printers aren't typically available in network-attached versions (although that's slowly changing). More important, many people already have printers that they'd like to share, but they don't want to leave them connected to PCs that must always be turned on. A few solutions are available for these problems.
Set Up a Print Server
First, if your home office or small office employs a server or two, these machines can easily pick up the duties of a print server in addition to whatever file-server, email, database, or Web server tasks they're currently performing. Print serving is a low-impact activity that any reasonably tasked server should be able to handle. Because your servers will typically be running some version of Windows (Windows Server 2003 or Windows 2000 Server) or Linux, sharing the printers will be a relatively simple affair. And because the servers are always on, your printers will always be available.
Buy a Hardware Print Server
If you don't want to connect the printer to a server, or you don't have a server because you're running a peer-to-peer network (or "workgroup," in Microsoft parlance), you can purchase a cheap hardware print server that will make a parallel port or USB-based printer available to wired and wireless network users. These devices essentially make traditional local printers look like network-attached printers, with a few caveats.
Because local printers aren't designed to attach directly to a network, hardware print servers must perform a bit of chicanery to make them work that way. Therefore, setting up such a printer can be difficult. I've tested a few hardware print servers, and they basically work the same way.
First, you need to decide which hardware print server to buy. Some models offer just one printer connection, but others offer two or more. Some hardware print servers are designed to be specifically wireless, but if you're running a typical home network, with a switch or access point (AP) between your PCs and the broadband connection, any hardware print server will work just fine with either wired and wireless PCs.
Next, you connect the hardware print server device to your home network (through an Ethernet connection to your switch or hub), connect the printer to it through a parallel or USB connection, and power up the device. This process is fairly straightforward.
Then, you need to install drivers on each of the client machines. This task will be unique to the device. For the Netgear PS110 print server that I use at home, I installed a custom port on each client PC so that the PCs think they're printing to a locally attached printer. This step is important in my case because my LaserJet 5P—an ancient model that refuses to die and apparently comes with magical toner that never runs out—wasn't available in a network-attached version, and only the local print driver version works. Fortunately, Netgear supplies a simple walkthrough wizard that works just fine, and I completed the software setup in less than 5 minutes per PC. The Netgear is perfect for just about any user because it can step you through the process.
For other hardware print servers, no software installation is necessary, but you'll have to know the IP address of the print server to get things rolling. On the print server I tested last week, Hawking Technologies HPS1P you simply tell the New Printer Wizard that you're connecting to a network-attached printer, type in the IP address (e.g., 192.168.0.123), then select the correct printer driver from the list. Hawking includes local printers on this list (which isn't typically the case), so I was able to pick out my HP LaserJet 5P and get to work quickly. For more technical users, this type of print server is probably a good bet.
Take the Plunge
However you choose to do it, sharing printers in your home office or small office is simpler than ever, and you have more choices than ever. Regardless of your budget, network size, or technical acumen, you have options that will meet your needs.