]>
Commit | Line | Data |
---|---|---|
ef416fc2 | 1 | <html> |
2 | <head> | |
3 | <meta name='Author' content='Michael Sweet'/> | |
4 | <title>An Overview of the Common UNIX Printing System</title> | |
5 | <link rel='stylesheet' type='text/css' href='cupsdoc.css'/> | |
6 | </head> | |
7 | <body> | |
8 | ||
9 | <table width='100%'> | |
10 | <tr valign='top'> | |
11 | <td><img src='images/cups-large.gif' width='103' | |
12 | height='120' alt='CUPS Logo'/></td> | |
13 | <td><h1 align='right'>An Overview of the<br /> | |
14 | Common UNIX Printing System,<br /> | |
15 | Version 1.2</h1> | |
16 | ||
17 | <p align='right'>July 3, 2004<br /> | |
18 | Michael Sweet, Easy Software Products<br /> | |
19 | Copyright 1998-2004, All Rights Reserved.</p> | |
20 | </td> | |
21 | </tr> | |
22 | </table> | |
23 | ||
24 | <pre> | |
25 | New Outline: | |
26 | ||
27 | New Features: | |
28 | ||
29 | 1. Networking | |
30 | a. IPv6 | |
31 | i. Next-generation Internet support | |
32 | ii. ???? | |
33 | b. Domain sockets | |
34 | i. Enhanced performance under load for local clients. | |
35 | ii. Authentication without passwords on platforms that support it. | |
36 | c. CUPS browsing updates | |
37 | i. "Delete" bit for printers | |
38 | ii. "lease-time" for printers so that clients and servers don't need | |
39 | the same browse timeout/interval settings | |
40 | iii. Additional attributes/default options for network-wide defaults | |
41 | iv. Network default printer | |
42 | v. Ability to control send and receive protocols independently | |
43 | d. Rendevous support | |
44 | e. LDAP support | |
45 | f. Per-printer sharing | |
46 | ||
47 | 2. IPP Support | |
48 | a. Notifications | |
49 | b. Document object | |
50 | c. Send-URI, Print-URI | |
51 | d. Other stuff? | |
52 | e. Add/delete device operations | |
53 | ||
54 | 3. Scheduler | |
55 | a. Backchannel support | |
56 | b. Port monitor support | |
57 | c. Device monitor | |
58 | i. Dynamic device discovery/management | |
59 | d. All errors include a localized message. | |
60 | e. Fine-grain policies, server default + per-printer | |
61 | f. UTF-8 throughout | |
62 | ||
63 | 4. Web Interface | |
64 | a. cupsd.conf interface | |
65 | b. Move-Job | |
66 | c. Export printers to windows | |
67 | d. Per-printer sharing controls | |
68 | e. Per-printer access control lists | |
69 | f. Policy stuff | |
70 | ||
71 | 5. I18N | |
72 | a. Support for ... character sets | |
73 | b. All commands and messages are localized | |
74 | c. Character set transcoding | |
75 | d. ... , and Japanese localizations | |
76 | ||
77 | 6. Drivers | |
78 | a. New HP-RTL driver. | |
79 | ||
80 | </pre> | |
81 | ||
82 | <p>This whitepaper describes the Common UNIX Printing | |
83 | System<sup>TM</sup> (CUPS<sup>TM</sup>), a portable and | |
84 | extensible printing system for Linux<sup>®</sup>, | |
85 | MacOS<sup>®</sup> X, UNIX<sup>®</sup>. CUPS is developed | |
86 | by <a href='http://www.easysw.com'>Easy Software Products</a>, a | |
87 | software firm located in Hollywood, Maryland that has been | |
88 | selling commercial software for UNIX since 1993 through more | |
89 | than 40 distributors serving over 80 countries worldwide.</p> | |
90 | ||
91 | <p>CUPS is used by Apple to provide printing on MacOS X and is | |
92 | the defacto-standard for Linux. Additional information on CUPS | |
93 | is available on the World Wide Web at the following URL:</p> | |
94 | ||
95 | <pre> | |
96 | <a href='http://www.cups.org/'>http://www.cups.org/</a> | |
97 | </pre> | |
98 | ||
99 | ||
100 | <h2>Background</h2> | |
101 | ||
102 | <p>Printing within UNIX has historically been done using one of | |
103 | two printing systems - the Berkeley Line Printer Daemon (LPD) | |
104 | [RFC1179] and the AT&T Line Printer system. These printing | |
105 | systems were designed in the 70's for printing text to line | |
106 | printers; vendors have since added varying levels of support for | |
107 | other types of printers.</p> | |
108 | ||
109 | <p>Replacements for these printing systems have emerged [LPRng, | |
110 | Palladin, PLP], however none of the replacements change the | |
111 | fundamental capabilities of these systems.</p> | |
112 | ||
113 | <p>Over the years several attempts at developing a standard | |
114 | printing interface have been made, including the draft POSIX | |
115 | Printing standard developed by the Institute of Electrical and | |
116 | Electronics Engineers, Inc. (IEEE) [IEEE-1387.4] and Internet | |
117 | Printing Protocol (IPP) developed by the Internet Engineering | |
118 | Task Force (IETF) through the Printer Working Group (PWG) | |
119 | [IETF-IPP]. The POSIX printing standard defines a common set of | |
120 | command-line tools as well as a C interface for printer | |
121 | administration and print jobs, but has been shelved by the | |
122 | IEEE.</p> | |
123 | ||
124 | <p>The Internet Printing Protocol defines extensions to the | |
125 | HyperText Transport Protocol 1.1 [RFC2616] to provide support | |
126 | for remote printing services. IPP/1.1 was accepted by the IETF | |
127 | as a proposed standard in ??? of ???. Unlike POSIX Printing, IPP | |
128 | enjoys widespread industry support and has become the standard | |
129 | network printing solution for all operating systems.</p> | |
130 | ||
131 | <p>CUPS uses IPP/1.1 to provide a complete, modern printing | |
132 | system for UNIX that can be extended to support new printers, | |
133 | devices, and protocols while providing compatibility with | |
134 | existing UNIX applications. CUPS is free software provided under | |
135 | the terms of the GNU General Public License and GNU Library | |
136 | General Public License.</p> | |
137 | ||
138 | <h2>History</h2> | |
139 | ||
140 | <p>The first production release of CUPS (based on IPP/1.0) was | |
141 | released in October of 1999. Version 1.1 of CUPS was released in | |
142 | August of 2002 ???? and added support for IPP/1.1.</p> | |
143 | ||
144 | <p>CUPS 1.2 is based on IPP/1.1 and adds many of the functional | |
145 | enhancements that have been requested by our users. As with CUPS | |
146 | 1.1, CUPS 1.2 will be followed by patch releases that address | |
147 | any problems found with the software. New features will be put | |
148 | in the 1.3 release to follow.</p> | |
149 | ||
150 | <h2>Design Overview</h2> | |
151 | ||
152 | <p>Like most printing systems, CUPS is designed around a central | |
153 | print scheduling process that dispatches print jobs, processes | |
154 | administrative commands, provides printer status information to | |
155 | local and remote programs, and informs users as needed. Figure 1 | |
156 | shows the basic organization of CUPS.</p> | |
157 | ||
158 | <p align='center'><img src='images/cups-block-diagram.gif' | |
159 | width='470' height='170' alt='CUPS Block Diagram'/><br /> | |
160 | <i>Figure 1 - CUPS Block Diagram</i></p> | |
161 | ||
162 | <h3>Scheduler</h3> | |
163 | ||
164 | <p>The scheduler is a HTTP/1.1 server application that handles | |
165 | HTTP requests. Besides handling printer requests via IPP POST | |
166 | requests, the scheduler also acts as a full-featured web server | |
167 | for documentation, status monitoring, and administration.</p> | |
168 | ||
169 | <p>The scheduler also manages a list of available printers on | |
170 | the LAN and dispatches print jobs as needed using the | |
171 | appropriate filters and backends.</p> | |
172 | ||
173 | <h3>Configuration Files</h3> | |
174 | ||
175 | <p>The configuration files consist of:</p> | |
176 | ||
177 | <ul> | |
178 | ||
179 | <li>The HTTP server configuration file.</li> | |
180 | ||
181 | <li>Printer and class definition files.</li> | |
182 | ||
183 | <li>MIME type and conversion rule files.</li> | |
184 | ||
185 | <li>PostScript Printer Description (PPD) files.</li> | |
186 | ||
187 | </ul> | |
188 | ||
189 | <p>The HTTP server configuration file is purposely similar to | |
190 | the Apache server configuration file and defines all of the | |
191 | access control properties for the server.</p> | |
192 | ||
193 | <p>The printer and class definition files list the available | |
194 | printer queues and classes. Printer classes are collections of | |
195 | printers. Jobs sent to a class are forwarded to the first | |
196 | available printer in the class, round-robin fashion.</p> | |
197 | ||
198 | <p>The MIME type files list the supported MIME types | |
199 | (text/plain, application/postscript, etc.) and "magic' rules for | |
200 | automatically detecting the format of a file. These are used by | |
201 | the HTTP server to determine the <tt>Content-Type</tt> field for | |
202 | <tt>GET</tt> and <tt>HEAD</tt> requests and by the IPP request | |
203 | handler to determine the file type when a <tt>Print-Job</tt> or | |
204 | <tt>Send-File</tt> request is received with a | |
205 | <tt>document-format</tt> of | |
206 | <tt>application/octet-stream</tt>.</p> | |
207 | ||
208 | <p>The MIME conversion rule files list the available filters. | |
209 | The filters are used when a job is dispatched so that an | |
210 | application can send a convenient file format to the printing | |
211 | system which then converts the document into a printable format | |
212 | as needed. Each filter has a relative cost associated with it, | |
213 | and the filtering algorithm chooses the set of filters that will | |
214 | convert the file to the needed format with the lowest total | |
215 | "cost".</p> | |
216 | ||
217 | <p>The PPD files describe the capabilities of all printers, not | |
218 | just PostScript printers. There is one PPD file for each | |
219 | printer. PPD files for non-PostScript printers define additional | |
220 | filters through <tt>cupsFilter</tt> attributes to support | |
221 | printer drivers.</p> | |
222 | ||
223 | <h3>CUPS API</h3> | |
224 | ||
225 | <p>The CUPS API contains CUPS-specific convenience functions for | |
226 | queuing print jobs, getting printer information, accessing | |
227 | resources via HTTP and IPP, and manipulating PPD files. Unlike | |
228 | the rest of CUPS, the CUPS API is provided under the terms of | |
229 | the GNU LGPL so it may be used by non-GPL applications.</p> | |
230 | ||
231 | <h3>Berkeley and System V Commands</h3> | |
232 | ||
233 | <p>CUPS provides the System V and Berkeley command-line | |
234 | interfaces for submitting jobs and checking the printer status. | |
235 | The <tt>lpstat</tt> and <tt>lpc status</tt> commands | |
236 | also show network printers ("printer@server") when printer | |
237 | browsing is enabled.</p> | |
238 | ||
239 | <p>The System V administation commands are supplied for managing | |
240 | printers and classes. The Berkeley printer administration tool | |
241 | (<tt>lpc</tt>) is only supported in a "read-only' mode to | |
242 | check the current status of the printer queues and | |
243 | scheduler.</p> | |
244 | ||
245 | <h3>Filters</h3> | |
246 | ||
247 | <p>A filter program reads from the standard input or from a file | |
248 | if a filename is supplied. All filters must support a common set | |
249 | of options including printer name, job ID, username, job title, | |
250 | number of copies, and job options. All output is sent to the | |
251 | standard output.</p> | |
252 | ||
253 | <p>Filters are provided for many file formats and include image | |
254 | file and PostScript raster filters that support non-PostScript | |
255 | printers. Multiple filters are run in parallel to produce the | |
256 | required output format.</p> | |
257 | ||
258 | <p>The PostScript raster filter is based on the ESP Ghostscript | |
259 | core. Instead of using the Ghostscript printer drivers, the CUPS | |
260 | filter uses a generic CUPS raster printer driver and | |
261 | CUPS-compliant front-end to support any kind of raster printer. | |
262 | This allows the same printer driver filter to be used for | |
263 | printing raster data from any filter.</p> | |
264 | ||
265 | <pre>Talk about Apple's use of CUPS...</pre> | |
266 | ||
267 | <h3>CUPS Imaging</h3> | |
268 | ||
269 | <p>The CUPS Imaging library provides functions for managing | |
270 | large images, doing colorspace conversion and color management, | |
271 | scaling images for printing, and managing raster page streams. | |
272 | It is used by the CUPS image file filters, the PostScript RIP, | |
273 | and all raster printers drivers.</p> | |
274 | ||
275 | <h3>Backends</h3> | |
276 | ||
277 | <p>A backend program is a special filter that sends print data | |
278 | to a device or network connection. Backends for parallel, | |
279 | serial, USB, LPD, IPP, and AppSocket (JetDirect) connections are | |
280 | provided in CUPS 1.2.</p> | |
281 | ||
282 | <p>SAMBA version 2.0.6 and higher includes a SMB backend | |
283 | (<tt>smbspool(1)</tt>) that can be used for printing to | |
284 | Windows.</p> | |
285 | ||
286 | <h2>Network Printing</h2> | |
287 | ||
288 | <p>Traditionally, network printing has been one of the hardest | |
289 | things to get working under UNIX. One reason is because each | |
290 | vendor added their own extensions to the LPD protocol (the | |
291 | previous standard for network printing), making cross-platform | |
292 | printing difficult if not impossible.</p> | |
293 | ||
294 | <p>Another reason is that you have to administer every network | |
295 | printer on every client machine. In some cases you can "clone' | |
296 | the printer configuration from a "master' client to each of the | |
297 | others, but even that can be time-consuming and error-prone. | |
298 | Something better is needed.</p> | |
299 | ||
300 | <p>CUPS provides "printer browsing", which allows clients to | |
301 | automatically see and use printers from any server on a LAN. | |
302 | This means that you only need to configure the server and the | |
303 | clients will automatically see the printers and classes on | |
304 | it.</p> | |
305 | ||
306 | <p>In addition, CUPS can automatically merge multiple identical | |
307 | network printers into "implicit classes". This allows clients to | |
308 | send jobs to the implicit class and have them print on the first | |
309 | available printer or server. In addition, failsafe and | |
310 | load-balancing functions are enabled simply by defining the same | |
311 | printer on multiple servers!</p> | |
312 | ||
313 | <h2>New Features in CUPS 1.2</h2> | |
314 | ||
315 | <p>CUPS 1.2 includes many new features and capabilities: | |
316 | ||
317 | <ol> | |
318 | ||
319 | <li><a href='#BACKENDS'>Backends</a> | |
320 | ||
321 | <li><a href='#BANNERS'>Banner Page Support</a> | |
322 | ||
323 | <li><a href='#DIGEST'>Digest Authentication</a> | |
324 | ||
325 | <li><a href='#DIRSVC'>Directory Services</a> | |
326 | ||
327 | <li><a href='#FHS2'>Directory Structure Changes</a> | |
328 | ||
329 | <li><a href='#DOCOS'>Documentation</a> | |
330 | ||
331 | <li><a href='#DRIVERS'>Drivers</a> | |
332 | ||
333 | <li><a href='#FILTERS'>Filters</a> | |
334 | ||
335 | <li><a href='#IPP'>IPP Support</a> | |
336 | ||
337 | <li><a href='#PERSISTENCE'>Job Persistence</a> | |
338 | ||
339 | <li><a href='#LPD'>LPD Client Support</a> | |
340 | ||
341 | <li><a href='#USEROPTS'>User-Defined Printers and Options</a> | |
342 | ||
343 | <li><a href='#WEB'>Web Administration Interface</a> | |
344 | ||
345 | </ol> | |
346 | ||
347 | <h3><a name='BACKENDS'>1. Backends</a></h3> | |
348 | ||
349 | <p>CUPS 1.2 implements a new backend interface for retrieving a | |
350 | list of available devices for CUPS clients. This allows | |
351 | administration interfaces to query the CUPS scheduler for a list | |
352 | of available devices, automatically configure printers if the | |
353 | device identification information is available, and present the | |
354 | user with a list of available devices rather than relying on the | |
355 | user to know what devices are configured on the system.</p> | |
356 | ||
357 | <p>The new release also includes a backend for USB printers | |
358 | under *BSD and Linux. Support for USB under Solaris 8 will be | |
359 | provided in a subsequent patch release.</p> | |
360 | ||
361 | <h3><a name='BANNERS'>2. Banner Page Support</a></h3> | |
362 | ||
363 | <p>CUPS 1.2 includes support for banner pages at the beginning | |
364 | and end of a job. Banner pages may be of any file format and | |
365 | support variable substitution for job titles, usernames, etc. | |
366 | Default banner pages are associated with each printer and can be | |
367 | overridden with command-line options by the user.</p> | |
368 | ||
369 | <h3><a name='DIGEST'>3. Digest Authentication</a></h3> | |
370 | ||
371 | <p>Digest authentication provides a more secure method of | |
372 | authenticating access to the printing system. Unlike Basic | |
373 | authentication, Digest authentication does not send passwords | |
374 | "in the clear' so it is more difficult to gain unauthorized | |
375 | access to your system.</p> | |
376 | ||
377 | <p>CUPS 1.2 implements Digest authentication using a special MD5 | |
378 | password file instead of the UNIX password file. This file is | |
379 | managed using the new <tt>lppasswd</tt> command.</p> | |
380 | ||
381 | <h3><a name='DIRSVC'>4. Directory Services</a></h3> | |
382 | ||
383 | <p>CUPS 1.2 adds new directory service ("printer browsing") | |
384 | features to make using CUPS on large LANs and WANs easier. You | |
385 | can now poll a remote server for printer information and relay | |
386 | it to the LAN as well as restrict what printer information is | |
387 | processed (e.g. to "hide" servers, domains, or networks that you | |
388 | don't want to see.)</p> | |
389 | ||
390 | <h3><a name='FHS2'>5. Directory Structure Changes</a></h3> | |
391 | ||
392 | <p>CUPS 1.2 now uses a directory structure that complies with | |
393 | the Filesystem Hierarchy Standard (FHS), version 2.0. This | |
394 | should make integration into existing Linux and *BSD | |
395 | distributions a lot easier.</p> | |
396 | ||
397 | <h3><a name='DOCOS'>6. Documentation</a></h3> | |
398 | ||
399 | <p>The CUPS 1.2 documentation has gone through many revisions, | |
400 | including a completely rewritten administrators manual, a new | |
401 | programmers manual, and an IPP implementation reference | |
402 | manual.</p> | |
403 | ||
404 | <h3><a name='DRIVERS'>7. Drivers</a></h3> | |
405 | ||
406 | <p>CUPS 1.2 includes drivers for EPSON dot-matrix and inkjet | |
407 | printers. As with the HP PCL drivers, the EPSON drivers don't | |
408 | necessarily provide the best possible output for each printer | |
409 | but should provide adequate printing quality for general | |
410 | day-to-day printing.</p> | |
411 | ||
412 | <h3><a name='FILTERS'>8. Filters</a></h3> | |
413 | ||
414 | <p>CUPS 1.2 includes new image, PostScript, PDF, and text | |
415 | filters. The image filters have been upgraded to support Windows | |
416 | BMP and Alias PIX files.</p> | |
417 | ||
418 | <p>The PostScript filter is now based off ESP Ghostscript. The | |
419 | new filter provides much better performance with | |
420 | higher-resolution printers and supports all Level 3 PostScript | |
421 | language features.</p> | |
422 | ||
423 | <p>The new PDF filter is based off the excellent Xpdf software | |
424 | from Derek Noonburg and supports automatic page scaling. The new | |
425 | filter is a faster, smaller, more reliable replacement for the | |
426 | GNU Ghostscript PDF filtering that was used in CUPS 1.0.</p> | |
427 | ||
428 | <p>The new text filter now supports bidirectional text and can | |
429 | embed fonts as needed.</p> | |
430 | ||
431 | <h3><a name='IPP'>9. IPP Support</a></h3> | |
432 | ||
433 | <p>Probably the least visible portion of CUPS is the IPP | |
434 | support. CUPS 1.1 implements all of the required IPP/1.1 | |
435 | operations and attributes and most of the optional ones. The | |
436 | optional Create-Job and Send-File operations are now | |
437 | implemented, allowing for better System V printing system | |
438 | compatibility (one job ID per <tt>lp</tt> command) and support | |
439 | for banner pages.</p> | |
440 | ||
441 | <h3><a name='PERSISTENCE'>10. Job Persistence</a></h3> | |
442 | ||
443 | <p>CUPS 1.2 supports job persistence. This means that jobs are | |
444 | preserved even after a reboot, a feature that was sorely missing | |
445 | from CUPS 1.0.</p> | |
446 | ||
447 | <p>In addition, CUPS 1.2 allows you to keep job information | |
448 | after the job has printed. The basic post-job persistence mode | |
449 | provides a job history (number of pages printed, time job was | |
450 | printed, etc.) but does not preserve the actual job files. This | |
451 | can be changed to discard all information after a job is printed | |
452 | or keep the job files after printing so you can reprint a job at | |
453 | some later time.</p> | |
454 | ||
455 | <h3><a name='LPD'>11. LPD Client Support</a></h3> | |
456 | ||
457 | <p>By popular request, CUPS 1.2 supports LPD-based clients using | |
458 | a new mini-daemon that handles LPD requests and passes them on | |
459 | to the main server.</p> | |
460 | ||
461 | <h3><a name='USEROPTS'>12. User-Defined Printers and Options</a></h3> | |
462 | ||
463 | <p>CUPS 1.2 includes support for user-defined printers and | |
464 | options via a new <tt>lpoptions</tt> command. User-defined | |
465 | printers are special instances of the available printers (e.g. | |
466 | "printer/instance" or "printer@server/instance") that can have | |
467 | their own default options such as media size, resolution, and so | |
468 | forth. The <tt>lpoptions</tt> command can also be used to set a | |
469 | different default printer queue.</p> | |
470 | ||
471 | <h3><a name='WEB'>13. Web Administration Interface</a></h3> | |
472 | ||
473 | <p>CUPS 1.0 provided a simple class, job, and printer monitoring | |
474 | interface for web browsers. CUPS 1.2 replaces this interface | |
475 | with an enhanced administration interface that allows you to | |
476 | add, modify, delete, configure, and control classes, jobs, and | |
477 | printers.</p> | |
478 | ||
479 | <h2>Software Using CUPS</h2> | |
480 | ||
481 | <p>A lot has happened since CUPS 1.0 came out, and many software | |
482 | packages are supporting CUPS. We have contributed code to the | |
483 | SAMBA team to support CUPS, and parts of that are already | |
484 | available in SAMBA 2.0.6 and 2.0.7. With any luck the final | |
485 | pieces that provide a complete integration with SAMBA will be | |
486 | available in the next release of SAMBA.</p> | |
487 | ||
488 | <p>Two graphical interfaces have appeared on the scene that use | |
489 | CUPS as well. The KUPS project provides a KDE-based interface | |
490 | for CUPS and can be found at:</p> | |
491 | ||
492 | <pre> | |
493 | <a href='http://kups.sourceforge.net'>http://kups.sourceforge.net</a> | |
494 | </pre> | |
495 | ||
496 | <p>The X Printing Panel (XPP) project provides a graphical | |
497 | printing panel for CUPS and can be found at:</p> | |
498 | ||
499 | <pre> | |
500 | <a href='http://www.phy.uni-bayreuth.de/till/xpp'>http://www.phy.uni-bayreuth.de/till/xpp/</a> | |
501 | </pre> | |
502 | ||
503 | <p>Numerous other filters, drivers, tutorials, etc. have been | |
504 | made available on the CUPS Links web page, available at:</p> | |
505 | ||
506 | <pre> | |
507 | <a href='http://www.cups.org/links.php'>http://www.cups.org/links.php</a> | |
508 | </pre> | |
509 | ||
510 | <p>Finally, our own ESP Print Pro software uses CUPS to provide | |
511 | drivers for thousands of printers and can be found at:</p> | |
512 | ||
513 | <pre> | |
514 | <a href='http://www.easysw.com/printpro'>http://www.easysw.com/printpro</a> | |
515 | </pre> | |
516 | ||
517 | <h2>Operating Systems Using CUPS</h2> | |
518 | ||
519 | <p>One of our goals has always been to get as many UNIX/Linux | |
520 | distributions using CUPS as possible. Debian is currently | |
521 | providing CUPS as part of its stable distribution, and many | |
522 | other distributions are considering it in their next | |
523 | releases.</p> | |
524 | ||
525 | <h2>Summary</h2> | |
526 | ||
527 | <p>The Common UNIX Printing System provides a modern printing | |
528 | interface for UNIX applications that is both flexible and | |
529 | user-friendly. The software provides System V and Berkeley | |
530 | compatible command-line interfaces to ensure compatibility with | |
531 | existing applications. CUPS 1.2 adds many new features that make | |
532 | it an even better choice for printing under UNIX.</p> | |
533 | ||
534 | <h2>Who to Contact</h2> | |
535 | ||
536 | <p>For more information on CUPS please contact us at: | |
537 | ||
538 | <pre> | |
539 | Attn: CUPS Information | |
540 | Easy Software Products | |
541 | 44141 Airport View Drive Suite 204 | |
542 | Hollywood, Maryland 20636-3142 USA | |
543 | ||
544 | +1.301.373.9600 | |
545 | ||
546 | <a href='mailto:cups-info@cups.org'>cups-info@cups.org</a> | |
547 | </pre> | |
548 | ||
549 | <h2>References</h2> | |
550 | ||
551 | <dl> | |
552 | ||
553 | <dt>IEEE-1387.4</dt> | |
554 | ||
555 | <dd>System Administration - Part 4: Printing Interfaces | |
556 | (draft)</dd> | |
557 | ||
558 | <dt><a href='http://www.pwg.org/ipp/index.html'>IETF-IPP</a></dt> | |
559 | ||
560 | <dd>Internet Printing Protocol/1.1</dd> | |
561 | ||
562 | <dt><a href='http://www.astart.com/lprng.html'>LPRng</a></dt> | |
563 | ||
564 | <dd>An enhanced, extended, and portable implementation | |
565 | of the Berkeley LPR print spooler functionality</dd> | |
566 | ||
567 | <dt>Palladin</dt> | |
568 | ||
569 | <dd>A printing system developed at the Massachussetts | |
570 | Institute of Technology</dd> | |
571 | ||
572 | <dt><a href='http://www-usa.iona.com//hyplan/jmason/plp.html'>PLP</a></dt> | |
573 | ||
574 | <dd>The Portable Line Printer spooler system</dd> | |
575 | ||
576 | <dt><a href='http://www.ietf.org/rfc/rfc1179.txt'>RFC1179</a></dt> | |
577 | ||
578 | <dd>Line Printer Daemon Protocol</dd> | |
579 | ||
580 | <dt><a href='http://www.ietf.org/rfc/rfc2046.txt'>RFC2046</a></dt> | |
581 | ||
582 | <dd>Multipurpose Internet Mail Extensions (MIME) Part | |
583 | Two: Media Types</dd> | |
584 | ||
585 | <dt><a href='http://www.ietf.org/rfc/rfc2616.txt'>RFC2616</a></dt> | |
586 | ||
587 | <dd>Hypertext Transfer Protocol -- HTTP/1.1</dd> | |
588 | ||
589 | </dl> | |
590 | ||
591 | <h2>Trademarks</h2> | |
592 | ||
593 | <p>The Common UNIX Printing System, CUPS, and the CUPS logo are | |
594 | the trademark property of Easy Software Products. All other | |
595 | trademarks are the property of their respective owners.</p> | |
596 | ||
597 | </body> | |
598 | </html> |