The Printing HOWTO

Grant Taylor

     gtaylor+pht@picante.com
    

Version 5.15, 2001/01/15 04:47:37

This is the Printing HOWTO, a collection of information on how to generate, preview, print and fax anything under GNU/Linux. Almost everything applies equally well to free software users using other Unixlike operating systems.


Table of Contents
1. Introduction
1.1. Terminology
1.2. History
1.3. Copyright
2. Quick Start
2.1. Where to Get Help
3. How to print
3.1. With PDQ
3.2. With LPD and the lpr command
3.3. GUI Printing Tools
4. Kernel printer devices
4.1. The lp device (kernels <=2.1.32)
4.2. The parport device (kernels >= 2.1.33)
4.3. Serial devices
4.4. USB Devices
5. Supported Printers
5.1. Postscript
5.2. Non-Postscript
5.3. What printers work?
5.4. How to buy a printer
6. Spooling software
6.1. LPD
6.2. PDQ
6.3. LPRng
6.4. PPR
6.5. CUPS
7. How it all works
7.1. PDQ
7.2. LPD
8. How to set things up
8.1. Configuring PDQ
8.2. Configuring LPD
8.3. Large Installations
8.4. Accounting
9. Vendor Solutions
9.1. Red Hat
9.2. Debian
9.3. SuSE
9.4. Caldera
9.5. Corel
9.6. Mandrake
9.7. Slackware
9.8. Other Distributions
10. Ghostscript.
10.1. Invoking Ghostscript
10.2. Ghostscript output tuning
11. Networks
11.1. Printing to a Unix/lpd host
11.2. Printing to a Windows or Samba printer
11.3. Printing to a NetWare Printer
11.4. Printing to an EtherTalk (Apple) printer
11.5. Printing to a networked printer
11.6. Running an if for remote printers with old LPDs
11.7. From Windows.
11.8. From an Apple.
11.9. From Netware.
11.10. Networked Printer Administration
12. Windows-only printers
12.1. The Ghostscript Windows redirector
12.2. HP Winprinters
12.3. Lexmark Winprinters
13. How to print to a fax machine.
13.1. Using a faxmodem
13.2. Using the Remote Printing Service
13.3. Commercial Faxing Services
14. How to generate something worth printing.
14.1. Markup languages
14.2. WYSIWYG Word Processors
15. Printing Photographs
15.1. Ghostscript and Photos
15.2. Paper
15.3. Printer Settings
15.4. Print Durability
15.5. Shareware and Commercial Software
16. On-screen previewing of printable things.
16.1. PostScript
16.2. TeX dvi
16.3. Adobe PDF
17. Serial printers under lpd
17.1. Setting up in printcap
17.2. Older serial printers that drop characters
18. What's missing?
18.1. Plumbing
18.2. Fonts
18.3. Metadata
18.4. Drivers
19. Credits
20. GNU Free Documentation License
0. PREAMBLE
1. APPLICABILITY AND DEFINITIONS
2. VERBATIM COPYING
3. COPYING IN QUANTITY
4. MODIFICATIONS
5. COMBINING DOCUMENTS
6. COLLECTIONS OF DOCUMENTS
7. AGGREGATION WITH INDEPENDENT WORKS
8. TRANSLATION
9. TERMINATION
10. FUTURE REVISIONS OF THIS LICENSE
How to use this License for your documents
Index

1. Introduction

The Printing HOWTO should contain everything you need to know to help you set up printing services on your GNU/Linux box(en). As life would have it, it's a bit more complicated than in the point-and-click world of Microsoft and Apple, but it's also a bit more flexible and certainly easier to administer for large LANs.

This document is structured so that most people will only need to read the first half or so. Most of the more obscure and situation-dependent information in here is in the last half, and can be easily located in the Table of Contents, whereas some information through section 10 or 11 is probably needed by most people.

If you find this document or the LinuxPrinting.org website useful, consider buying something (ink, for example) through the referral links on the site; such purchases support this effort.

Since version 3.x was a complete rewrite, some information from previous editions has been lost. This is by design, as the previous HOWTOs were so large as to be 60 typeset pages, and had the narrative flow of a dead turtle. If you do not find your answers here, you are encouraged to a) look on the LinuxPrinting.org website and b) drop me a note saying what ought to be here but isn't.

The LinuxPrinting.org website is a good place to find the latest version; it is also, of course, distributed from Metalab (metalab.unc.edu) and your friendly local LDP mirror.

1.1. Terminology

I try to use consistent terminology throughout this document, so that users of all free Unixlike systems, and even users of non-Unixlike free software, can benefit. Unfortunately, there are many handy ambiguous names and many awkward unambiguous names, so just to be clear, here's a quick glossary of what each name means:

Unix

Unix is an operating system constructed at Bell Labs by various researchers. A variety of operating systems, mostly commercial, are based on this code and are also included in the name Unix.

Un*x

Un*x is an awkward word used to refer to every Unixlike operating system. A Unixlike operating system provides something similar to a POSIX programming interface as its native API. GNU/Linux, FreeBSD, Solaris, AIX, and even special-purpose systems like Lynx and QNX are all Un*x.

Linux

Linux is a Unixlike kernel and a small assortment of peripheral software written by Linus Torvalds and hundreds of other programmers. It forms the foundation of the most widely used Un*x operating system.

GNU

The GNU (GNU's Not Unix) project is a longtime development effort to produce an entirely free Unixlike operating system. The GNU Project is in many ways the father of most modern free software efforts.

GNU/Linux

A GNU/Linux operating system is a complete system comprised of the Linux kernel, its peripheral programs, and the GNU runtime environment of libraries, utilities, enduser software, etc. Red Hat, Debian, Caldera, SuSE, TurboLinux, and similar companies are all commercial vendors of complete GNU/Linux systems.

1.2. History

This is the fourth generation of the Printing HOWTO. The history of the PHT may be chronicled thusly:

  1. I wrote the printing-howto in 1992 in response to all the printing questions in comp.os.linux, and posted it. This predated the HOWTO project by a few months and was the first FAQlet called a `howto'. This edition was in plain ascii.

  2. After joining the HOWTO project, the Printing-HOWTO was merged with an Lpd FAQ by Brian McCauley <B.A.McCauley@bham.ac.uk>; we continued to co-author the PHT for two years or so. At some point we incorporated the work of Karl Auer <Karl.Auer@anu.edu.au>. This generation of the PHT was in TeXinfo, and available in PS, HTML, Ascii, and Info.

  3. After letting the PHT rot and decay for over a year, and an unsuccessful attempt at getting someone else to maintain it, this rewrite happened. This generation of the PHT is written in SGML using the LinuxDoc DTD and the SGML-Tools-1 package. Beginning with version 3.27, it incorporated a summary of a companion printer support database; before 3.27 there was never a printer compatibility list in this HOWTO (!).

  4. In mid-January, 2000, I found out about the PDQ print "spooler". PDQ provides a printing mechanism so much better than lpd ever did that I spent several hours playing with it, rewrote parts of this HOWTO, and bumped the version number of the document to 4.

  5. In mid-2000, I moved my printing website to www.linuxprinting.org, and began offering more powerful configuration tools there. I also converted the HOWTO to DocBook, and initiated coverage of CUPS, LPRng, and GPR/libppd.

  6. In early 2001, I began using the GNU Free Documentation License, which seems quite suitable. I also began an effort to clarify what is and isn't Linux-specific; there are several free Unixlike kernels out there, and they all use the same printing software.

1.3. Copyright

Copyright (c) 1992-2001 Grant Taylor.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in Section 20.