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