Defining Print Servers

A print server is a computer program or a hardware device. Client applications send print jobs to print servers which generally support one or more TCP/IP print protocols. Common print protocols include:

  • LPR/LPD (also known as line printer protocol) documented in RFC 1179
  • telnet or stream (usually using port 9100, typical with HP printers)
  • IPP, Internet Print Protocol, described in a series of RFCs
  • Microsoft print protocol (scantly documented), used with Windows shared printers

Client applications which send print jobs to print servers can be on nearly any computer platform in existence today, from IBM business systems such as mainframes or System i (also known as AS/400 or iSeries); Linux distributions; HP 3000 and HP 9000 systems; commercial Unix implementations such as Solaris, AIX and HP/UX; Mac OS/X; and Windows systems. The current generation of smartphones such as iPhones and Google Android phones can send print jobs to a print server, using proprietary protocols.

TCP/IP Printing 

There is no one “right” print protocol. However, there are implementations of the LPR/LPD protocol, and for that reason, many systems offer an LPR print client. IPP was developed by printer vendors as an answer to the deficiencies of LPR/LPD and to establish a growth path that addressed modern printing requirements including security, job status, and printer feature capability.

Why use a print server?

If your application can print directly to your printer, there is no reason to use a print server. So, you would use a print server to get functions you can’t get from your printer.

Common reasons to use a print server include: 

  1. You can’t reach the printer on your network.
  2. The printer is busy, and you need to spool or risk losing your print jobs.
  3. You need to tweak the print job.
  4. You need functions the printer doesn’t support.

The first reason, availability, and connectivity is not as common these days with even cheap USB printers typically supporting TCP/IP. However, hardware print servers usually support a multitude of networks so that they may make sense for many applications.

The second reason, spooling, is often the justification to use a software print server. Hardware print servers usually do not spool or are not as cost effective as a general purpose computer which already has an available disk.

Some hardware print servers support data translations, such as changing line endings from Unix style to Windows style, or EBCDIC to ASCII translation. However, for extensive data translations, many choose a software print server. It is easier to talk to your vendor about adding a software translation then it is to get an upgrade for your hardware print server.

Finally, if you wanted to do something with your print jobs besides print them, perhaps, archive to disk or send via an email attachment, then you are probably looking at a software print server.

We will explore four categories of print servers ordered by the complexity of printing support they are likely to offer. At the top are the solutions best suited for basic printing needs. The farther down you go, the more “out of the box” capabilities and flexibility you will find.

Categories of print servers

The four types of print servers examined here include:

Hardware print servers

A hardware print server is typically a simple device with a network connector and a USB or parallel connector for a printer. This print server often has a built-in Web server for configuration and online help. Or, it may depend on a manual interface with buttons and an LCD.

Hardware print servers typically do not spool unless they have a disk.

The JetDirect from Hewlett Packard is a widely used, high performing print server. The following is from the spec sheet for the HP JetDirect 300x print server series.

Protocols supported: TCP/IP, IPX/SPX, AppleTalk, IP Direct Mode, LPD, FTP Printing, IPP, Netware NDS, Bindery, NDPS, iPrint, Telnet, SLP, IGMP, BOOTP/DHCP, WINS, SNMP, HTTP

Of these: LPD, FTP, IPP, and Telnet are actual print protocols. iPrint works with IPP and Netware. IPX/SPX and AppleTalk are network protocols along with TCP/IP. SLP (Service Location Protocol) is used to advertise that this printer is available. BOOTP (Bootstrap Protocol) and DHCP (Dynamic Host Configuration Protocol) are used for configuration. SNMP (Simple Network Management Protocol) is used for monitoring printer status. HTTP is used because the print server has a built-in Web server, for configuration and status. NDS, Bindery, and NDPS work with Netware.

Also from the same spec sheet: 

Supported printers: Any network-capable printer with an IEEE-1284 compliant parallel port and a compatible network driver. Note: printer must support printing an HP Jetdirect configuration page using the HP PCL, HP/GL-2, ASCII, or PostScript printer languages.

The JetDirect print server packs a lot of capability, but it requires the attached printer to be compatible with HP printer languages, plain text or PostScript. It serves an extensive range but is not entirely general purpose.

Note that the application still has to generate the right codes to drive the printer. The hardware print server doesn’t provide relief from that rule.

Hardware print servers tend to specialize in supporting one or more manufacturers line of printers. A general purpose hardware print server rarely supports specialized printers.

The advantage of hardware print servers is that they are very fast and usually inexpensive. The disadvantage is that they are best suited for typical, “in the box” uses.

Windows print servers

The terms “Windows print server” and “Windows shared printer” are usually synonymous. We’ll get to the difference below. You use normal Windows administration tools to configure your Windows print server.

Here’s a brief introduction to Windows printing. Applications print in Windows the same way they write to the screen: they print to Windows. That is, Windows provides a way to select a font, write some text, do graphics and colors, etc. You never worry about your application's compatibility with your Windows monitor. It’s the same with the printer.

Windows, on the other hand, requires a driver from the printer vendor to produce the right codes for the printer. It’s a matter of simple economics: to sell a printer, you need to provide a driver.

The difference between a shared printer in Windows and a local printer is that the local printer is attached to your computer while the shared printer is on another Windows computer. A shared printer typically supports several users. It’s less disruptive to come up with a spare computer to drive several printers than it is to have people printing on your desktop printer through the day.

Technically, the computer that drives the “shared” printer is also a print server. However, the term “Windows print server” also encompasses the idea of printer pools, where you have several compatible printers which are used interchangeably. This is similar to the hardware print server with more than one printer connection. When it comes to which printer will print a given job, it’s up to the print server to make that determination.

The advantage of Windows printing is that it supports a wide variety of both general and specialized printers, and it does this reasonably well. The disadvantage is that it can be quirky to maintain due to user permissions, software idiosyncrasies, etc. Also, Windows defines it’s own “box” and does not handle unusual printing situations well, without third party software.

Unix print servers

Print servers have their origin in the world of Unix printing. There are Internet RFCs on TCP/IP printing that go back at least as far as 1972. (With permission, we’ll call it “Unix” since print servers in that environment predate both GNU and Linux).

Historically, Unix print servers supported these print protocols: LPD, FTP, and Telnet. IPP is a more recent addition since 1999.

At its core, a Unix print server listens on a well-known port (so clients can find it) and supports named queues. When the client prints, it specifies which queue it wants to use.

The print server defines the queue names; therefore, you need to know in advance which queue you want to use. They are sometimes referred to as “printers” although the print server references the actual printers. This is different than Windows, which defines the printers.

The print server typically is configured through a Web portal or an administrative program. In older days one would edit a text configuration file, then figure out the hard way why some queues were no longer defined.

One of the strengths of Unix is the vast number of text processing tools available. The Unix print server model incorporates these as filters. You can set up a print queue to process the print job through one or more of these filters before the data is sent to an actual print device.

A simple illustration: print a PostScript file on an HP LaserJet 4, which is not PostScript capable. The steps to perform this: 

  1. download, build and install the freely available “Ghostscript” program
  2. convert a sample PostScript file to LaserJet 4 codes, send those to the printer, make sure you understand the correct command line options and test that the program is working as you expect
  3. review the manual pages on the print server configuration
  4. create a queue definition in the print server configuration file to process files through Ghostscript on the way to the printer
  5. try to print a sample PostScript file to the printer, get frustrated when the definition doesn’t exist, take a walk, get a drink of water
  6. remember to restart the print server so it re-reads the definition you created
  7. proudly show your co-workers the PostScript manual they asked for, printed in stunning resolution on their venerable printer

A bright programmer or admin can accomplish the above in under an hour; a real Unix guru, probably five minutes or less. True Unix skills involve using existing tools in creative ways. It is possible to convert any type of data, using one or a dozen Unix filters, into a standard printer language. Consequently, you can--with the right skill set--configure a queue on a Unix print server to print your specific data to your particular printer.

The advantage of a Unix print server is the nearly unlimited flexibility in printing support, and of course, many Unix distributions are free, and others provide decent support at a reasonable price. The disadvantage is that you need to find someone with the skills, and the tools, to do what you need. The more common your print requirements, the more likely it is you can do what you need with GUI or Web configuration tools.

Software print servers

Software print servers come in 3 categories:

  1. simplistic LPD programs which map a queue to a Windows printer
  2. comprehensive LPD print programs which offer a variety of data transformations and methods of printing, plus non-print options including “print to email” and “print to disk”
  3. LPD print server which is merely a way to introduce print jobs into a much larger system

The first category is not much different from a hardware print server. You could expect to pay under USD 100 for software in this category.

The more full-featured LPD print program should support unlimited print queues, provide for extensive tailoring of your print jobs, options to convert data to other formats, plus reprint. The RPM Remote Print Manager product also adds the ability to run a “filter” program, like the Unix print server. On Windows platforms, it’s more common to use a custom application in place of a filter, and not print. However, RPM offers built-in programs for translating PCL to PDF and other image formats.

Programs in this category might run between $200 to $800, possibly one thousand.

The last category, the LPD print server which is a bridge to a larger system, is priced as part of an extensive data transformation and archiving system which could cost anywhere from $15,000 to $30,000. 

The advantage of a software print server is that you can find a tool of nearly any capability (from low to sophisticated). If the tool has vendor support, then you could find a system that will grow with your organization's needs. The disadvantage of a software print server is that it's easy to underestimate your company’s needs or to purchase far more than you need.