]> git.ipfire.org Git - thirdparty/cups.git/blame - doc/printing-overview.shtml
Load cups into easysw/current.
[thirdparty/cups.git] / doc / printing-overview.shtml
CommitLineData
ef416fc2 1<H1 ALIGN="RIGHT"><A NAME="OVERVIEW">1 - Printing System Overview</A></H1>
2
3<P>This chapter provides an overview of how the Common UNIX Printing System
4works.
5
6<H2>The Printing Problem</H2>
7
8<P>For years <I>the printing problem</I> has plagued UNIX. Unlike
9Microsoft&reg; Windows&reg; or Mac OS, UNIX has no standard interface or
10system in place for supporting printers. Among the solutions currently
11available, the Berkeley and System V printing systems are the most
12prevalent.
13
14<P>These printing systems support line printers (text only) or
15PostScript printers (text and graphics), and with some coaxing they can
16be made to support a full range of printers and file formats. However,
17because each varient of the UNIX operating system uses a different
18printing system than the next developing printer drivers for a wide
19range of printers and operating systems is extremely difficult. That
20combined with the limited volume of customers for each UNIX varient has
21forced most printer vendors to give up supporting UNIX entirely.
22
23<P>CUPS is designed to eliminate <I>the printing problem</I>. One
24common printing system can be used by all UNIX varients to support the
25printing needs of users. Printer vendors can use its modular filter
26interface to develop a single driver program that supports a wide range
27of file formats with little or no effort. Since CUPS provides both the
28System V and Berkeley printing commands, users (and applications) can
29reap the benefits of this new technology with no changes.
30
31<H2>The Technology</H2>
32
33<P>CUPS is based upon an emerging Internet standard called the Internet
34Printing Protocol. IPP has been embraced by dozens of printer and
35printer server manufacturers and is supported by Microsoft Windows
362000.
37
38<P>IPP defines a standard protocol for printing as well as managing
39print jobs and printer options like media size, resolution, and so
40forth. Like all IP-based protocols, IPP can be used locally or over the
41Internet to printers hundreds or thousands of miles away. Unlike other
42protocols, however, IPP also supports access control, authentication,
43and encryption, making it a much more capable and secure printing
44solution than older ones.
45
46<P>IPP is layered on top of the Hyper-Text Transport Protocol ("HTTP")
47which is the basis of web servers on the Internet. This allows users
48to view documentation, check status information on a printer or server,
49and manage their printers, classes, and jobs using their web browser.
50
51<P>CUPS provides a complete IPP/1.1 based printing system that provides
52Basic, Digest, and local certificate authentication and user, domain,
53or IP-based access control. TLS encryption will be available in future
54versions of CUPS.
55
56<H2>Jobs</H2>
57
58<P>Each file or set of files that is submitted for printing is called a
59<I>job</I>. Jobs are identified by a unique number starting at 1 and
60are assigned to a particular destination, usually a printer. Jobs can
61also have options associated with them such as media size, number of
62copies, and priority.
63
64<H2>Classes</H2>
65
66<P>CUPS supports collections of printers known as <I>classes</I>. Jobs
67sent to a class are forwarded to the first available printer in the
68class.
69
70<H2>Filters</H2>
71
72<P>Filters allow a user or application to print many types of files
73without extra effort. Print jobs sent to a CUPS server are filtered
74before sending them to a printer. Some filters convert job files to
75different formats that the printer can understand. Others perform page
76selection and ordering tasks.
77
78<P>CUPS provides filters for printing many types of image files,
79HP-GL/2 files, PDF files, and text files. CUPS also supplies PostScript
80and image file Raster Image Processor ("RIP") filters that convert
81PostScript or image files into bitmaps that can be sent to a raster
82printer.
83
84<H2>Backends</H2>
85
86<P>Backends perform the most important task of all - they send the
87filtered print data to the printer.
88
89<P>CUPS provides backends for printing over parallel, serial, and USB
90ports, and over the network via the IPP, JetDirect (AppSocket), and
91Line Printer Daemon ("LPD") protocols. Additional backends are
92available in network service packages such as the SMB backend
93included with the popular SAMBA software.
94
95<P>Backends are also used to determine the available devices. On
96startup each backend is asked for a list of devices it supports,
97and any information that is available. This allows the parallel
98backend to tell CUPS that an EPSON Stylus Color 600 printer is
99attached to parallel port 1, for example.
100
101<H2>Printer Drivers</H2>
102
103<P>Printer drivers in CUPS consist of one of more filters specific to a
104printer. CUPS includes sample printer drivers for Hewlett-Packard
105LaserJet and DeskJet printers and EPSON 9-pin, 24-pin, Stylus Color,
106and Stylus Photo printers. While these drivers do not generate optimal
107output for the different printer models, they do provide basic printing
108and demonstrate how you can write your own printer drivers and
109incorporate them into CUPS.
110
111<H2>Networking</H2>
112
113<P>Printers and classes on the local system are automatically shared
114with other systems on the network. This allows you to setup one system
115to print to a printer and use this system as a printer server or spool
116host for all of the others. Users may then select a local printer by
117name or a remote printer using "name@server".
118
119<P>CUPS also provides <I>implicit classes</I>, which are collections of
120printers and/or classes with the same name. This allows you to setup
121multiple servers pointing to the same physical network printer, for
122example, so that you aren't relying on a single system for printing.
123Because this also works with printer classes, you can setup multiple
124servers and printers and never worry about a single point of failure
125unless all of the printers and servers go down!