Load cups into easysw/current.
[thirdparty/cups.git] / doc / idd.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
2 <HTML>
3 <HEAD>
4 <TITLE>CUPS Interface Design Description</TITLE>
5 <META NAME="author" CONTENT="Easy Software Products">
6 <META NAME="copyright" CONTENT="Copyright 1997-2003, All Rights Reserved">
7 <META NAME="docnumber" CONTENT="CUPS-IDD-1.2">
8 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-8859-1">
9 <STYLE TYPE="text/css"><!--
10 BODY { font-family: serif }
11 H1 { font-family: sans-serif }
12 H2 { font-family: sans-serif }
13 H3 { font-family: sans-serif }
14 H4 { font-family: sans-serif }
15 H5 { font-family: sans-serif }
16 H6 { font-family: sans-serif }
17 SUB { font-size: smaller }
18 SUP { font-size: smaller }
19 PRE { font-family: monospace }
20 --></STYLE>
21 </HEAD>
22 <BODY>
23 <CENTER><A HREF="#CONTENTS"><IMG SRC="images/cups-large.gif" BORDER="0" WIDTH="431" HEIGHT="511"><BR>
24 <H1>CUPS Interface Design Description</H1></A><BR>
25 CUPS-IDD-1.2<BR>
26 Easy Software Products<BR>
27 Copyright 1997-2003, All Rights Reserved<BR>
28 </CENTER>
29 <HR>
30 <H1 ALIGN="CENTER"><A NAME="CONTENTS">Table of Contents</A></H1>
31 <BR>
32 <BR><B><A HREF="#1">1 Scope</A></B>
33 <UL>
34 <LI><A HREF="#1_1">1.1 Identification</A></LI>
35 <LI><A HREF="#1_2">1.2 System Overview</A></LI>
36 <LI><A HREF="#1_3">1.3 Document Overview</A></LI>
37 </UL>
38 <B><A HREF="#2">2 References</A></B>
39 <UL>
40 <LI><A HREF="#2_1">2.1 CUPS Documentation</A></LI>
41 <LI><A HREF="#2_2">2.2 Other Documents</A></LI>
42 </UL>
43 <B><A HREF="#3">3 Internal Interfaces</A></B>
44 <UL>
45 <LI><A HREF="#3_1">3.1 Character Set Files</A></LI>
46 <UL>
47 <LI><A HREF="#3_1_1">3.1.1 8-Bit Character Set Files</A></LI>
48 <LI><A HREF="#3_1_2">3.1.2 Unicode Character Set Files</A></LI>
49 </UL>
50 <LI><A HREF="#3_2">3.2 Language Files</A></LI>
51 <LI><A HREF="#3_3">3.3 MIME Files</A></LI>
52 <UL>
53 <LI><A HREF="#3_3_1">3.3.1 mime.types</A></LI>
54 <LI><A HREF="#3_3_2">3.3.2 mime.convs</A></LI>
55 </UL>
56 <LI><A HREF="#3_4">3.4 Option Files</A></LI>
57 <LI><A HREF="#3_5">3.5 PostScript Printer Description Files</A></LI>
58 <UL>
59 <LI><A HREF="#3_5_1">3.5.1 PPD Specification</A></LI>
60 <LI><A HREF="#3_5_2">3.5.2 CUPS Extensions to PPD Files</A></LI>
61 </UL>
62 <LI><A HREF="#3_6">3.6 Scheduler Configuration Files</A></LI>
63 <UL>
64 <LI><A HREF="#3_6_1">3.6.1 classes.conf</A></LI>
65 <LI><A HREF="#3_6_2">3.6.2 cupsd.conf</A></LI>
66 <LI><A HREF="#3_6_3">3.6.3 printers.conf</A></LI>
67 </UL>
68 </UL>
69 <B><A HREF="#4">4 External Interfaces</A></B>
70 <UL>
71 <LI><A HREF="#4_1">4.1 AppSocket Protocol</A></LI>
72 <LI><A HREF="#4_2">4.2 CUPS Browsing Protocol</A></LI>
73 <LI><A HREF="#4_3">4.3 CUPS Form File</A></LI>
74 <UL>
75 <LI><A HREF="#4_3_1">4.3.1 CUPS Form DTD</A></LI>
76 </UL>
77 <LI><A HREF="#4_4">4.4 CUPS PostScript File</A></LI>
78 <LI><A HREF="#4_5">4.5 CUPS Raster File</A></LI>
79 <LI><A HREF="#4_6">4.6 CUPS Raw Files</A></LI>
80 <LI><A HREF="#4_7">4.7 Internet Printing Protocol</A></LI>
81 <LI><A HREF="#4_8">4.8 Line Printer Daemon Protocol</A></LI>
82 <LI><A HREF="#4_9">4.9 Server Message Block Protocol</A></LI>
83 </UL>
84 <B><A HREF="#5">5 Directories</A></B>
85 <BR>
86 <BR><B><A HREF="#6">A Glossary</A></B>
87 <UL>
88 <LI><A HREF="#6_1">A.1 Terms</A></LI>
89 <LI><A HREF="#6_2">A.2 Acronyms</A></LI>
90 </UL>
91 <HR>
92 <H1><A NAME="1">1 Scope</A></H1>
93 <H2><A NAME="1_1">1.1 Identification</A></H2>
94 <P>This interface design description document provides detailed file
95  formats, message formats, and program conventions for the Common UNIX
96  Printing System (&quot;CUPS&quot;) Version 1.2.</P>
97 <H2><A NAME="1_2">1.2 System Overview</A></H2>
98 <P>CUPS provides a portable printing layer for UNIX&reg;-based operating
99  systems. It has been developed by<A HREF="http://www.easysw.com"> Easy
100  Software Products</A> to promote a standard printing solution for all
101  UNIX vendors and users. CUPS provides the System V and Berkeley
102  command-line interfaces.</P>
103 <P>CUPS uses the Internet Printing Protocol (&quot;IPP&quot;) as the basis for
104  managing print jobs and queues. The Line Printer Daemon (&quot;LPD&quot;) Server
105  Message Block (&quot;SMB&quot;), and AppSocket (a.k.a. JetDirect) protocols are
106  also supported with reduced functionality. CUPS adds network printer
107  browsing and PostScript Printer Description (&quot;PPD&quot;) based printing
108  options to support real-world printing under UNIX.</P>
109 <P>CUPS also includes a customized version of GNU Ghostscript (currently
110  based off GNU Ghostscript 5.50) and an image file RIP that are used to
111  support non-PostScript printers. Sample drivers for HP and EPSON
112  printers are included that use these filters.</P>
113 <H2><A NAME="1_3">1.3 Document Overview</A></H2>
114 <P>This interface design description document is organized into the
115  following sections:</P>
116 <UL>
117 <LI>1 - Scope</LI>
118 <LI>2 - References</LI>
119 <LI>3 - Internal Interfaces</LI>
120 <LI>4 - External Interfaces</LI>
121 <LI>5 - Directories</LI>
122 <LI>A - Glossary</LI>
123 </UL>
124 <H1><A NAME="2">2 References</A></H1>
125 <H2><A NAME="2_1">2.1 CUPS Documentation</A></H2>
126 <P>The following CUPS documentation is referenced by this document:</P>
127 <UL>
128 <LI>CUPS-CMP-1.2: CUPS Configuration Management Plan</LI>
129 <LI>CUPS-IDD-1.2: CUPS System Interface Design Description</LI>
130 <LI>CUPS-IPP-1.2: CUPS Implementation of IPP</LI>
131 <LI>CUPS-SAM-1.2.x: CUPS Software Administrators Manual</LI>
132 <LI>CUPS-SDD-1.2: CUPS Software Design Description</LI>
133 <LI>CUPS-SPM-1.2.x: CUPS Software Programming Manual</LI>
134 <LI>CUPS-SSR-1.2: CUPS Software Security Report</LI>
135 <LI>CUPS-STP-1.2: CUPS Software Test Plan</LI>
136 <LI>CUPS-SUM-1.2.x: CUPS Software Users Manual</LI>
137 <LI>CUPS-SVD-1.2: CUPS Software Version Description</LI>
138 </UL>
139 <H2><A NAME="2_2">2.2 Other Documents</A></H2>
140 <P>The following non-CUPS documents are referenced by this document:</P>
141 <UL>
142 <LI><A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/5003.PPD_Spec_v4.3.pdf">
143 Adobe PostScript Printer Description File Format Specification, Version
144  4.3.</A></LI>
145 <LI><A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/PLRM.pdf">
146 Adobe PostScript Language Reference, Third Edition.</A></LI>
147 <LI>IPP: Job and Printer Set Operations</LI>
148 <LI>IPP/1.1: Encoding and Transport</LI>
149 <LI>IPP/1.1: Implementers Guide</LI>
150 <LI>IPP/1.1: Model and Semantics</LI>
151 <LI><A HREF="http://www.ietf.org/rfc/rfc1179.txt">RFC 1179, Line Printer
152  Daemon Protocol</A></LI>
153 <LI><A HREF="http://www.ietf.org/rfc/rfc2567.txt">RFC 2567, Design Goals
154  for an Internet Printing Protocol</A></LI>
155 <LI><A HREF="http://www.ietf.org/rfc/rfc2568.txt">RFC 2568, Rationale
156  for the Structure of the Model and Protocol for the Internet Printing
157  Protocol</A></LI>
158 <LI><A HREF="http://www.ietf.org/rfc/rfc2569.txt">RFC 2569, Mapping
159  between LPD and IPP Protocols</A></LI>
160 <LI><A HREF="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616, Hypertext
161  Transfer Protocol -- HTTP/1.1</A></LI>
162 <LI><A HREF="http://www.ietf.org/rfc/rfc2617.txt">RFC 2617, HTTP
163  Authentication: Basic and Digest Access</A> Authentication</LI>
164 </UL>
165 <H1><A NAME="3">3 Internal Interfaces</A></H1>
166 <H2><A NAME="3_1">3.1 Character Set Files</A></H2>
167 <P>The character set files define a mapping between 8-bit characters and
168  the Unicode character set, or between Unicode and printer fonts. They
169  are named using the IETF charset names defined in RFCnnnn. These files
170  are ASCII text, the content of which is described below. Comments can
171  be included by using the <TT>#</TT> character in the first column of a
172  line.</P>
173 <H3><A NAME="3_1_1">3.1.1 8-Bit Character Set Files</A></H3>
174 <P>8-bit character set files start with a line reading:</P>
175 <UL>
176 <PRE>
177 charset 8bit
178 </PRE>
179 </UL>
180 <P>Following this are lines that define the font information:</P>
181 <UL>
182 <PRE>
183 first last direction width normal bold italic bold-italic
184 </PRE>
185 </UL>
186 <P><VAR>First</VAR> and<VAR> last</VAR> are the first and last glyphs in
187  the font mapping that correspond to that font; a maximum of 256
188  characters can be mapped within each group, with a maximum of 256
189  mappings (this is a PostScript limitation.) The glyph values are
190  hexadecimal.</P>
191 <P><VAR>Direction</VAR> is the string &quot;ltor&quot;, &quot;rtol&quot;, or &quot;rtola&quot;
192  indicating left-to-right, right-to-left, or right-to-left Arabic text.</P>
193 <P><VAR>Width</VAR> is the string &quot;single&quot; or &quot;double&quot;; double means
194  that the glyphs are twice as wide as ASCII characters in the Courier
195  typeface.</P>
196 <P><VAR>Normal, bold, italic</VAR>, and<VAR> bold-italic</VAR> are the
197  typefaces to use for each presentation. If characters are only
198  available in a single style then only one typeface should be listed
199  (e.g. &quot;Symbol&quot;.) Each font that is listed will be used (and downloaded
200  if needed) when printing.</P>
201 <P>The remaining lines define a character to Unicode glyph mapping for
202  the character set. The character and glyph values are hexadecimal:</P>
203 <UL>
204 <PRE>
205 xx yyyy
206 </PRE>
207 </UL>
208 <H3><A NAME="3_1_2">3.1.2 Unicode Character Set Files</A></H3>
209 <P>Unicode character set files start with a line reading:</P>
210 <UL>
211 <PRE>
212 charset encoding
213 </PRE>
214 </UL>
215 <P><VAR>Encoding</VAR> is the encoding to use for the text; currently
216  only the string &quot;utf8&quot; is supported.</P>
217 <P>Following this are lines defining the font information:</P>
218 <UL>
219 <PRE>
220 first last direction width normal bold italic bold-italic
221 </PRE>
222 </UL>
223 <P><VAR>First</VAR> and<VAR> last</VAR> are the first and last glyphs in
224  the font mapping that correspond to that font; a maximum of 256
225  characters can be mapped within each group, with a maximum of 256
226  mappings (this is a PostScript limitation.) The glyph values are
227  hexadecimal.</P>
228 <P><VAR>Direction</VAR> is the string &quot;ltor&quot;, &quot;rtol&quot;, or &quot;rtola&quot;
229  indicating left-to-right, right-to-left, or right-to-left Arabic text.</P>
230 <P><VAR>Width</VAR> is the string &quot;single&quot; or &quot;double&quot;; double means
231  that the glyphs are twice as wide as ASCII characters in the Courier
232  typeface.</P>
233 <P><VAR>Normal, bold, italic</VAR>, and<VAR> bold-italic</VAR> are the
234  typefaces to use for each presentation. If characters are only
235  available in a single style then only one typeface should be listed
236  (e.g. &quot;Symbol&quot;.) Each font that is listed will be used (and downloaded
237  if needed) when printing.</P>
238 <H2><A NAME="3_2">3.2 Language Files</A></H2>
239 <P>The language files define the default character set and a collection
240  of text messages in that language. They are named by prefixing the
241  string &quot;cups_&quot; to the front of the language specifier (e.g. &quot;cups_en&quot;,
242  &quot;cups_fr&quot;, etc.) Each file consists of two or more lines of ASCII text.</P>
243 <P>The first line identifies the character set to be used for the
244  messages. The currently recognized values are:</P>
245 <UL>
246 <LI>iso-8859-1</LI>
247 <LI>iso-8859-2</LI>
248 <LI>iso-8859-3</LI>
249 <LI>iso-8859-4</LI>
250 <LI>iso-8859-5</LI>
251 <LI>iso-8859-6</LI>
252 <LI>iso-8859-7</LI>
253 <LI>iso-8859-8</LI>
254 <LI>iso-8859-9</LI>
255 <LI>iso-8859-10</LI>
256 <LI>iso-8859-13</LI>
257 <LI>iso-8859-14</LI>
258 <LI>iso-8859-15</LI>
259 <LI>us-ascii</LI>
260 <LI>utf-8</LI>
261 <LI>windows-874</LI>
262 <LI>windows-1250</LI>
263 <LI>windows-1251</LI>
264 <LI>windows-1252</LI>
265 <LI>windows-1253</LI>
266 <LI>windows-1254</LI>
267 <LI>windows-1255</LI>
268 <LI>windows-1256</LI>
269 <LI>windows-1257</LI>
270 <LI>windows-1258</LI>
271 <LI>koi8-r</LI>
272 <LI>koi8-u</LI>
273 </UL>
274 <P>The second and succeeding lines define text messages. If the message
275  text is preceded by a number, then the current message number is
276  updated and the text after the number is used.</P>
277 <H2><A NAME="3_3">3.3 MIME Files</A></H2>
278 <P>CUPS uses two MIME files in its standard configuration.</P>
279 <H3><A NAME="3_3_1">3.3.1 mime.types</A></H3>
280 <P>The mime.types file defines the recognized file types and consists of
281  1 or more lines of ASCII text. Comment lines start with the pound (&quot;#&quot;)
282  character. The backslash (&quot;\&quot;) character can be used at the end of a
283  line to continue that line to the next.</P>
284 <P>Each non-blank line starts with a MIME type identifier (&quot;super/type&quot;)
285  as registered with the IANA. All text following the MIME type is
286  treated as a series of type recognition rules:</P>
287 <UL>
288 <PRE>
289 mime-type := super &quot;/&quot; type { SP rule }*
290 super := { &quot;a-z&quot; | &quot;A-Z&quot; }*
291 type := { &quot;a-z&quot; | &quot;A-Z&quot; | &quot;-&quot; | &quot;.&quot; | &quot;0-9&quot; }*
292 rule := { extension | match | operator | &quot;(&quot; rule &quot;)&quot; }*
293 extension := { &quot;a-z&quot; | &quot;A-Z&quot; | &quot;0-9&quot; }*
294 match := &quot;match(&quot; regexp &quot;)&quot; |
295          &quot;ascii(&quot; offset &quot;,&quot; length &quot;)&quot; |
296          &quot;printable(&quot; offset &quot;,&quot; length &quot;)&quot; |
297          &quot;string(&quot; offset &quot;,&quot; string &quot;)&quot; |
298          &quot;contains(&quot; offset &quot;,&quot; length &quot;,&quot; string &quot;)&quot; |
299          &quot;char(&quot; offset &quot;,&quot; value &quot;)&quot; |
300          &quot;short(&quot; offset &quot;,&quot; value &quot;)&quot; |
301          &quot;int(&quot; offset &quot;,&quot; value &quot;)&quot; |
302          &quot;locale(&quot; string &quot;)&quot;
303 operator := &quot;+&quot; |     [ logical AND ]
304             &quot;,&quot; | SP    [ logical OR ]
305             &quot;!&quot;         [ unary NOT ]
306 </PRE>
307 </UL>
308 <P>The <CODE>int</CODE> and <CODE>short</CODE> rules match look for
309  integers in network byte order (a.k.a. big-endian) with the
310  most-significant byte first.</P>
311 <H3><A NAME="3_3_2">3.3.2 mime.convs</A></H3>
312 <P>The mime.types file defines the recognized file filters and consists
313  of 1 or more lines of ASCII text. Comment lines start with the pound
314  (&quot;#&quot;) character.</P>
315 <P>Each non-blank line starts with two MIME type identifiers
316  (&quot;super/type&quot;) representing the source and destination types. Following
317  the MIME types are a cost value (0 to 100) and the filter program to
318  use. If the filter program is not specified using the full path then it
319  must reside in the CUPS filter directory:</P>
320 <UL>
321 <PRE>
322 super/type SP super/type2 SP cost SP program
323 </PRE>
324 </UL>
325 <H2><A NAME="3_4">3.4 Option Files</A></H2>
326 <P>CUPS maintains user-defined printer and option files for each printer
327  and user on the system. The printers and options defined in the system
328  option file (<CODE>/etc/cups/lpoptions</CODE>) are loaded first,
329  followed by the user option file (<CODE>$HOME/.lpoptions</CODE>).
330  Options in the user file replace those defined in the system file for
331  the same destination. Each line in the files can be one of the
332  following:</P>
333 <UL>
334 <PRE>
335 Dest name option=value option=value ... option=value
336 Dest name/instance option=value option=value ... option=value
337 Default name option=value option=value ... option=value
338 Default name/instance option=value option=value ... option=value
339 </PRE>
340 </UL>
341 <P>The line beginning with &quot;Default&quot; indicates the default destination
342  for print jobs; a default line in the user option file overrides the
343  default defined in the system option file.</P>
344 <P><VAR>Name</VAR> is the name of a printer known to the local server.</P>
345 <P><VAR>Instance</VAR> can be any string of letters, numbers, and the
346  underscore up to 127 characters in length.</P>
347 <P>The remainder of the line contains a list of space-separated options
348  and their values.</P>
349 <H2><A NAME="3_5">3.5 PostScript Printer Description Files</A></H2>
350 <P>PostScript Printer Description (&quot;PPD&quot;) files describe the
351  capabilities of each printer and are used by CUPS to support
352  printer-specific features and intelligent filtering.</P>
353 <H3><A NAME="3_5_1">3.5.1 PPD Specification</A></H3>
354 <P>The PPD file format is described in<A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/5003.PPD_Spec_v4.3.pdf">
355  Adobe TechNote #5003: PostScript Printer Description File Format
356  Specification Version 4.3</A>.</P>
357 <H3><A NAME="3_5_2">3.5.2 CUPS Extensions to PPD Files</A></H3>
358 <P>CUPS adds several new attributes that are described below.</P>
359 <H4>3.5.2.1 cupsFilter</H4>
360 <P>This string attribute provides a conversion rule of the form:</P>
361 <UL>
362 <PRE>
363 source/type cost program
364 </PRE>
365 </UL>
366 <P>The destination type is assumed to the printer's type. If a printer
367  supports the source type directly the special filter program &quot;-&quot; may be
368  specified.</P>
369 <H4>3.5.2.2 cupsManualCopies</H4>
370 <P>This boolean attribute notifies the RIP filters that the destination
371  printer does not support copy generation in hardware. The default value
372  is false.</P>
373 <H4>3.5.2.3 cupsModelNumber</H4>
374 <P>This integer attribute specifies a printer-specific model number.
375  This number can be used by a filter program to adjust the output for a
376  specific model of printer.</P>
377 <H4>3.5.2.4 cupsProfile</H4>
378 <P>This string attribute specifies a color profile of the form:</P>
379 <UL>
380 <PRE>
381 resolution/type density gamma m00 m01 m02 m10 m11 m12 m20 m21 m22
382 </PRE>
383 </UL>
384 <P>The<I> resolution</I> and<I> type</I> values may be &quot;-&quot; to act as a
385  wildcard. Otherwise they must match one of the <CODE>Resolution</CODE>
386  or <CODE>MediaType</CODE> attributes defined in the PPD file.</P>
387 <P>The<I> density</I> and<I> gamma</I> values define gamma and density
388  adjustment function such that:</P>
389 <UL>
390 <PRE>
391 f(x) = density * x<SUP>gamma</SUP>
392 </PRE>
393 </UL>
394 <P>The<I> m00</I> through<I> m22</I> values define a 3x3 transformation
395  matrix for the CMY color values. The density function is applied<I>
396  after</I> the CMY transformation.</P>
397 <H4>3.5.2.5 cupsVersion</H4>
398 <P>This required attribute describes which version of the CUPS IDD was
399  used for the PPD file extensions. Currently it must be the string
400  &quot;1.0&quot;, &quot;1.1&quot;, or &quot;1.2&quot;.</P>
401 <H2><A NAME="3_6">3.6 Scheduler Configuration Files</A></H2>
402 <P>The scheduler reads three configuration files that define the
403  available printers, classes, and services:</P>
404 <DL>
405 <DT>classes.conf</DT>
406 <DD>This file defines all of the printer classes known to the system.</DD>
407 <DT>cupsd.conf</DT>
408 <DD>This file defines the files, directories, passwords, etc. used by
409  the scheduler.</DD>
410 <DT>printers.conf</DT>
411 <DD>This file defines all of the printers known to the system.</DD>
412 </DL>
413 <H3><A NAME="3_6_1">3.6.1 classes.conf</A></H3>
414 <P>The classes.conf file consists of 1 or more lines of ASCII text.
415  Comment lines start with the pound (&quot;#&quot;) character.</P>
416 <P>Each non-blank line starts with the name of a configuration directive
417  followed by its value. The following directives are understood:
418 <CENTER>
419 <TABLE BORDER="1" WIDTH="90%">
420 <TR><TH WIDTH="25%">Directive</TH><TH>Description</TH></TR>
421 <TR><TD>&lt;Class name&gt;
422 <BR> &lt;/Class&gt;</TD><TD>Surrounds a class definition.</TD></TR>
423 <TR><TD>&lt;DefaultClass name&gt;
424 <BR> &lt;/Class&gt;</TD><TD>Surrounds a class definition for the default
425  destination.</TD></TR>
426 <TR><TD>Accepting</TD><TD>Specifies whether the class is accepting new
427  jobs. May be the names &quot;Yes&quot; or &quot;No&quot;.</TD></TR>
428 <TR><TD>AllowUsers</TD><TD>Specifies a list of users that are allowed to
429  access the class.</TD></TR>
430 <TR><TD>BannerStart</TD><TD>Specifies the banner that is printed before
431  other files in a job.</TD></TR>
432 <TR><TD>BannerEnd</TD><TD>Specifies the banner that is printed after
433  other files in a job.</TD></TR>
434 <TR><TD>DenyUsers</TD><TD>Specifies a list of users that are not allowed
435  to access the class.</TD></TR>
436 <TR><TD>Info</TD><TD>A textual description of the class.</TD></TR>
437 <TR><TD>Location</TD><TD>A textual location of the class.</TD></TR>
438 <TR><TD>Printer</TD><TD>Specifies a printer that is a member of the
439  class.</TD></TR>
440 <TR><TD>State</TD><TD>Specifies the initial state of the class; can be
441  &quot;Idle&quot; or &quot;Stopped&quot;.</TD></TR>
442 <TR><TD>StateMessage</TD><TD>Specifies a textual message for the current
443  class state.</TD></TR>
444 </TABLE>
445 </CENTER>
446 </P>
447 <H3><A NAME="3_6_2">3.6.2 cupsd.conf</A></H3>
448 <P>The cupsd.conf file consists of 1 or more lines of ASCII text.
449  Comment lines start with the pound (&quot;#&quot;) character.</P>
450 <P>Each non-blank line starts with the name of a configuration directive
451  followed by its value. The following directives are understood:
452 <CENTER>
453 <TABLE BORDER="1" WIDTH="90%">
454 <TR><TH WIDTH="25%">Directive</TH><TH>Default</TH><TH>Description</TH></TR>
455 <TR><TD>AccessLog</TD><TD>access_log</TD><TD>Specifies the location of
456  the access log file. The special name &quot;syslog&quot; can be used to send
457  access log information to the system log.</TD></TR>
458 <TR><TD>Allow</TD><TD>-</TD><TD>Allows connections from the specified
459  host, network, or domain.</TD></TR>
460 <TR><TD>AuthClass</TD><TD>-</TD><TD>Specifies what level of
461  authentication is required; may be &quot;User&quot;, &quot;System&quot;, or &quot;Group&quot;.</TD></TR>
462 <TR><TD>AuthType</TD><TD>None</TD><TD>Specifies the type of
463  authentication to perform; may be &quot;None&quot;, &quot;Basic&quot;, or &quot;Digest&quot;.</TD></TR>
464 <TR><TD>BrowseAddress</TD><TD>255.255.255.255</TD><TD>Specifies a
465  broadcast address to send CUPS browsing packets to.</TD></TR>
466 <TR><TD>BrowseAllow</TD><TD>-</TD><TD>Specifies hosts or addresses from
467  which browsing information should be used.</TD></TR>
468 <TR><TD>BrowseDeny</TD><TD>-</TD><TD>Specifies hosts or addresses from
469  which browsing information should not be used.</TD></TR>
470 <TR><TD>BrowseInterval</TD><TD>30</TD><TD>Specifies the number of
471  seconds between browsing updates. A browse interval of 0 seconds
472  disables outgoing packets.</TD></TR>
473 <TR><TD>BrowseOrder</TD><TD>Allow,Deny</TD><TD>Specifies the order of
474  BrowseAllow and BrowseDeny directive processing; can be &quot;Deny,Allow&quot; to
475  implicitly deny hosts unless they are allowed by a BrowseAllow line, or
476  &quot;Allow,Deny&quot; to implicitly allow hosts unless they are denied by a
477  BrowseDeny line.</TD></TR>
478 <TR><TD>BrowsePoll</TD><TD>-</TD><TD>Specifies a server to poll for
479  available printers and classes.</TD></TR>
480 <TR><TD>BrowsePort</TD><TD>631</TD><TD>Specifies the UDP port number to
481  use for browse packets.</TD></TR>
482 <TR><TD>BrowseRelay</TD><TD>-</TD><TD>Specifies a source and destination
483  address for relaying browser information from one subnet to another.</TD>
484 </TR>
485 <TR><TD>BrowseShortNames</TD><TD>yes</TD><TD>Specifies whether or not to
486  provide short names (without the &quot;@server&quot; part) for remote printers.</TD>
487 </TR>
488 <TR><TD>BrowseTimeout</TD><TD>300</TD><TD>Specifies the number of
489  seconds to wait until remote destinations are removed from the local
490  destination list.</TD></TR>
491 <TR><TD>Browsing</TD><TD>On</TD><TD>Specifies whether or not printer and
492  class browsing is enabled; can be &quot;On&quot; or &quot;Off&quot;.</TD></TR>
493 <TR><TD>DataDir</TD><TD>/usr/share/cups</TD><TD>Specifies the directory
494  where CUPS data files are stored.</TD></TR>
495 <TR><TD>DefaultCharset</TD><TD>iso-8859-1</TD><TD>Specifies the default
496  character set.</TD></TR>
497 <TR><TD>DefaultLanguage</TD><TD>current locale</TD><TD>Specifies the
498  default language.</TD></TR>
499 <TR><TD>Deny</TD><TD>-</TD><TD>Refuses connections from the specified
500  host, network, or domain.</TD></TR>
501 <TR><TD>DocumentRoot</TD><TD>/usr/share/doc/cups</TD><TD>Specifies the
502  document data root directory.</TD></TR>
503 <TR><TD>ErrorLog</TD><TD>error_log</TD><TD>Specifies the error log file
504  location. The special name &quot;syslog&quot; can be used to send error log
505  information to the system log.</TD></TR>
506 <TR><TD>Group</TD><TD>root, sys, system</TD><TD>Specifies the group name
507  or ID that is used when running external programs.</TD></TR>
508 <TR><TD>HostNameLookups</TD><TD>Off</TD><TD>Specifies whether or not to
509  perform reverse IP address lookups to get the actual hostname; may be
510  &quot;On&quot; or &quot;Off&quot;. Hostname lookups can significantly degrade the
511  performance of the CUPS server if one or more DNS servers is not
512  functioning properly.</TD></TR>
513 <TR><TD>ImplicitClasses</TD><TD>On</TD><TD>Specifies whether or not to
514  automatically create printer classes when more than one printer or
515  class of the same name is detected on the network; may be &quot;On&quot; or
516  &quot;Off&quot;.</TD></TR>
517 <TR><TD>KeepAlive</TD><TD>On</TD><TD>Specifies whether or not to use the
518  HTTP Keep-Alive feature; may be &quot;On&quot; or &quot;Off&quot;.</TD></TR>
519 <TR><TD>KeepAliveTimeout</TD><TD>30</TD><TD>Specifies the amount of time
520  to keep the HTTP connection alive before closing it.</TD></TR>
521 <TR><TD>&lt;Location path&gt;
522 <BR> &lt;/Location&gt;</TD><TD>-</TD><TD>Specifies a location to restrict
523  access to.</TD></TR>
524 <TR><TD>LogLevel</TD><TD>info</TD><TD>Controls the amount of information
525  that is logged in the error log file. Can be one of &quot;debug&quot;, &quot;info&quot;,
526  &quot;warn&quot;, &quot;error&quot;, or &quot;none&quot;, in decreasing order or verbosity.</TD></TR>
527 <TR><TD>MaxClients</TD><TD>100</TD><TD>Specifies the maximum number of
528  simultaneous active clients. This value is internally limited to 1/3 of
529  the total number of available file descriptors.</TD></TR>
530 <TR><TD>MaxLogSize</TD><TD>0</TD><TD>Specifies the maximum size of the
531  access, error, and page log files in bytes. If set to 0 then no maximum
532  size is set. Log files are rotated automatically when this size is
533  exceeded.</TD></TR>
534 <TR><TD>MaxRequestSize</TD><TD>0</TD><TD>Specifies the maximum size of
535  HTTP requests in bytes. If set to 0 then there is no maximum.</TD></TR>
536 <TR><TD>Order</TD><TD>Allow,Deny</TD><TD>Specifies the order of Allow
537  and Deny directive processing; can be &quot;Deny,Allow&quot; to implicitly deny
538  hosts unless they are allowed by an Allow line, or &quot;Allow,Deny&quot; to
539  implicitly allow hosts unless they are denied by a Deny line.</TD></TR>
540 <TR><TD>PageLog</TD><TD>page_log</TD><TD>Specifies the location of the
541  page log file. The special name &quot;syslog&quot; can be used to send page log
542  information to the system log.</TD></TR>
543 <TR><TD>Port</TD><TD>631</TD><TD>Specifies a port number to listen to
544  for HTTP connections.</TD></TR>
545 <TR><TD>Printcap</TD><TD>/etc/printcap</TD><TD>Specifies the location of
546  a Berkeley printcap file to update with a list of current printers and
547  classes. If no filename is supplied then this automatic generation is
548  disabled.</TD></TR>
549 <TR><TD>RequestRoot</TD><TD>/var/spool/cups</TD><TD>Specifies the
550  location of request files.</TD></TR>
551 <TR><TD>RIPCache</TD><TD>8m</TD><TD>Specifies the size of the memory
552  cache in bytes that is used by RIP filters.</TD></TR>
553 <TR><TD>ServerAdmin</TD><TD>root@ServerName</TD><TD>Specifies the person
554  to contact with problems.</TD></TR>
555 <TR><TD>ServerName</TD><TD>hostname</TD><TD>Specifies the hostname that
556  is supplied to HTTP clients. This is also used to determine the default
557  CUPS server for the CUPS IPP client applications.</TD></TR>
558 <TR><TD>ServerRoot</TD><TD>/etc/cups</TD><TD>Specifies the root
559  directory for server configuration files.</TD></TR>
560 <TR><TD>SystemGroup</TD><TD>root, sys, system</TD><TD>Specifies the
561  group name used for System class authentication.</TD></TR>
562 <TR><TD>TempDir</TD><TD>/var/tmp</TD><TD>Specifies the temporary
563  directory to use.</TD></TR>
564 <TR><TD>Timeout</TD><TD>300</TD><TD>The timeout in seconds before client
565  connections are closed in the middle of a request.</TD></TR>
566 <TR><TD>User</TD><TD>lp</TD><TD>Specifies the user that is used when
567  running external programs.</TD></TR>
568 </TABLE>
569 </CENTER>
570 </P>
571 <H3><A NAME="3_6_3">3.6.3 printers.conf</A></H3>
572 <P>The printers.conf file consists of 1 or more lines of ASCII text.
573  Comment lines start with the pound (&quot;#&quot;) character.</P>
574 <P>Each non-blank line starts with the name of a configuration directive
575  followed by its value. The following directives are understood:
576 <CENTER>
577 <TABLE BORDER="1" WIDTH="90%">
578 <TR><TH WIDTH="25%">Directive</TH><TH>Description</TH></TR>
579 <TR><TD>Accepting</TD><TD>Specifies whether the printer is accepting new
580  jobs. May be the names &quot;Yes&quot; or &quot;No&quot;.</TD></TR>
581 <TR><TD>&lt;DefaultPrinter name&gt;
582 <BR> &lt;/Printer&gt;</TD><TD>Surrounds the printer definition for a default
583  destination.</TD></TR>
584 <TR><TD>AllowUsers</TD><TD>Specifies a list of users that are allowed to
585  access the printer.</TD></TR>
586 <TR><TD>BannerStart</TD><TD>Specifies the banner that is printed before
587  other files in a job.</TD></TR>
588 <TR><TD>BannerEnd</TD><TD>Specifies the banner that is printed after
589  other files in a job.</TD></TR>
590 <TR><TD>DenyUsers</TD><TD>Specifies a list of users that are not allowed
591  to access the printer.</TD></TR>
592 <TR><TD>DeviceURI</TD><TD>Specifies the device-uri attribute for the
593  printer.</TD></TR>
594 <TR><TD>Info</TD><TD>A textual description of the printer.</TD></TR>
595 <TR><TD>Location</TD><TD>A textual location of the printer.</TD></TR>
596 <TR><TD>&lt;Printer name&gt;
597 <BR> &lt;/Printer&gt;</TD><TD>Surrounds the printer definition.</TD></TR>
598 <TR><TD>State</TD><TD>Specifies the initial state of the printer; can be
599  &quot;Idle&quot; or &quot;Stopped&quot;.</TD></TR>
600 <TR><TD>StateMessage</TD><TD>Specifies a textual message for the current
601  printer state.</TD></TR>
602 </TABLE>
603 </CENTER>
604 </P>
605 <H1><A NAME="4">4 External Interfaces</A></H1>
606 <H2><A NAME="4_1">4.1 AppSocket Protocol</A></H2>
607 <P>The AppSocket protocol is an 8-bit clean TCP/IP socket connection.
608  The default IP service port is 9100. The URI method name is &quot;socket&quot;.</P>
609 <P>The AppSocket protocol is used by the Hewlett Packard JetDirect
610  network interfaces and print servers, as well as many other vendors'
611  products. See the CUPS Software Administrators Manual for a list of
612  supported products.</P>
613 <H2><A NAME="4_2">4.2 CUPS Browsing Protocol</A></H2>
614 <P>The CUPS Browsing Protocol is a UDP/IP-based broadcast service. By
615  default this service operates on IP service port 631.</P>
616 <P>Each broadcast packet describes the state of a single printer or
617  class and is an ASCII text string of up to 1450 bytes ending with a
618  newline (0x0a). The string is formatted as follows:</P>
619 <UL>
620 <PRE>
621 type SP state SP uri SP &quot;location&quot; SP &quot;info&quot; SP &quot;make-and-model&quot; NL
622 </PRE>
623 </UL>
624 <P><VAR>State, uri, location, info</VAR>, and<VAR> make-and-model</VAR>,
625  correspond to the IPP <CODE>printer-state</CODE>, <CODE>
626 printer-uri-supported</CODE>, <CODE>printer-location</CODE>, <CODE>
627 printer-info</CODE>, and <CODE>printer-make-and-model</CODE> attributes.</P>
628 <P><VAR>Type</VAR> is a hexadecimal number string representing
629  capability/type bits:
630 <CENTER>
631 <TABLE BORDER="1" WIDTH="40%">
632 <TR><TH WIDTH="8%">Bit</TH><TH>Description</TH></TR>
633 <TR><TD>0</TD><TD>0 = printer
634 <BR> 1 = class</TD></TR>
635 <TR><TD>1</TD><TD>0 = local
636 <BR> 1 = remote
637 <BR> (always 1)</TD></TR>
638 <TR><TD>2</TD><TD>1 = can print B</TD></TR>
639 <TR><TD>3</TD><TD>1 = can print color</TD></TR>
640 <TR><TD>4</TD><TD>1 = can duplex</TD></TR>
641 <TR><TD>5</TD><TD>1 = can staple</TD></TR>
642 <TR><TD>6</TD><TD>1 = can do fast copies</TD></TR>
643 <TR><TD>7</TD><TD>1 = can do fast collating</TD></TR>
644 <TR><TD>8</TD><TD>1 = can punch holes</TD></TR>
645 <TR><TD>9</TD><TD>1 = can cover</TD></TR>
646 <TR><TD>10</TD><TD>1 = can bind</TD></TR>
647 <TR><TD>11</TD><TD>1 = can sort</TD></TR>
648 <TR><TD>12</TD><TD>1 = can print up to 9x14 inches</TD></TR>
649 <TR><TD>13</TD><TD>1 = can print up to 18x24 inches</TD></TR>
650 <TR><TD>14</TD><TD>1 = can print up to 36x48 inches</TD></TR>
651 <TR><TD>15</TD><TD>1 = can print variable sizes</TD></TR>
652 </TABLE>
653 </CENTER>
654 </P>
655 <H2><A NAME="4_3">4.3 CUPS Form File</A></H2>
656 <P>CUPS Form files are XML files used by the CUPS <CODE>formtops</CODE>
657  filter to produce dynamic banner pages and support preprinted forms.</P>
658 <P>The MIME type for CUPS Form files is <CODE>application/vnd.cups-form</CODE>
659 .</P>
660 <H3><A NAME="4_3_1">4.3.1 CUPS Form DTD</A></H3>
661 <P>The following DTD describes the available elements and attributes in
662  a CUPS Form file:
663 <CENTER>
664 <TABLE BORDER>
665 <TR><TD>
666 <PRE>
667 &lt;!ENTITY % Angle &quot;CDATA&quot; -- angle in degrees --&gt;
668
669 &lt;!ENTITY % Color &quot;CDATA&quot; -- a color using sRGB: #RRGGBB as Hex values --&gt;
670
671 &lt;!ENTITY % Length &quot;CDATA&quot; -- nn for pixels or nn% for percentage length --&gt;
672
673 &lt;!ENTITY % Lengths &quot;CDATA&quot; -- comma-separated Length values --&gt;
674
675 &lt;!ENTITY % Text &quot;CDATA&quot;&gt;
676
677 &lt;!ENTITY % heading &quot;H1|H2|H3|H4|H5|H6&quot;&gt;
678
679 &lt;!ENTITY % preformatted &quot;PRE&quot;&gt;
680
681 &lt;!ENTITY % i18n
682  &quot;lang        %LanguageCode; #IMPLIED  -- language code --
683   dir         (ltr|rtl)      #IMPLIED  -- direction for weak/neutral text --&quot;
684   &gt;
685
686 &lt;!ENTITY % attrs &quot;%i18n;&quot;&gt;
687
688 &lt;!ENTITY % fontstyle
689  &quot;B | FONT | I | TT&quot;&gt;
690
691 &lt;!ENTITY % graphics
692  &quot;BOX | RECT | LINE | POLY | ARC | PIE | TEXT&quot;&gt;
693
694 &lt;!ENTITY % insert
695  &quot;IMG | VAR&quot;&gt;
696
697 &lt;!-- %inline; covers inline or &quot;text-level&quot; elements --&gt;
698 &lt;!ENTITY % inline &quot;#PCDATA | %fontstyle; | %graphics; | %insert;&quot;&gt;
699
700 &lt;!ELEMENT (%fontstyle;) - - (%inline;)*&gt;
701 &lt;!ATTLIST (%fontstyle;)
702   %attrs;                              -- %i18n --
703   &gt;
704
705 &lt;!ELEMENT BR - O EMPTY                 -- forced line break --&gt;
706 &lt;!ATTLIST BR
707   %attrs;                              -- %i18n --
708   &gt;
709
710 &lt;!ENTITY % block
711      &quot;P | %heading; | %preformatted;&quot;&gt;
712
713 &lt;!ENTITY % flow &quot;%block; | %inline;&quot;&gt;
714
715 &lt;!ELEMENT PAGE O O (%flow;)+           -- document body --&gt;
716 &lt;!ATTLIST PAGE
717   %attrs;                              -- %i18n --
718   align       (left|center|right) #IMPLIED -- horizontal alignment --
719   valign      (top|middle|center|bottom) #IMPLIED -- vertical alignment --
720   &gt;
721
722 &lt;!ELEMENT P - O (%inline;)*            -- paragraph --&gt;
723 &lt;!ATTLIST P
724   %attrs;                              -- %i18n --
725   align       (left|center|right) #IMPLIED -- horizontal alignment --
726   &gt;
727
728 &lt;!ELEMENT (%heading;)  - - (%inline;)* -- heading --&gt;
729 &lt;!ATTLIST (%heading;)
730   %attrs;                              -- %i18n --
731   align       (left|center|right) #IMPLIED -- horizontal alignment --
732   &gt;
733
734 &lt;!ELEMENT PRE - - (%inline;)*          -- preformatted text --&gt;
735 &lt;!ATTLIST PRE
736   %attrs;                              -- %i18n --
737   align       (left|center|right) #IMPLIED -- horizontal alignment --
738   &gt;
739
740 &lt;!ELEMENT BOX - O EMPTY                -- unfilled box --&gt;
741 &lt;!ATTLIST BOX
742   color       %Color;        #IMPLIED  -- override color --
743   height      %Length;       #REQUIRED -- height of box --
744   thickness   %Length;       #IMPLIED  -- override line thickness --
745   width       %Length;       #REQUIRED -- width of box --
746   x           %Length;       #REQUIRED -- horizontal position --
747   y           %Length;       #REQUIRED -- vertical position --
748   &gt;
749
750 &lt;!ELEMENT RECT - O EMPTY               -- filled box --&gt;
751 &lt;!ATTLIST RECT
752   color       %Color;        #IMPLIED  -- override color --
753   height      %Length;       #REQUIRED -- height of box --
754   width       %Length;       #REQUIRED -- width of box --
755   x           %Length;       #REQUIRED -- horizontal position --
756   y           %Length;       #REQUIRED -- vertical position --
757   &gt;
758
759 &lt;!ELEMENT LINE - O EMPTY               -- polyline --&gt;
760 &lt;!ATTLIST LINE
761   color       %Color;        #IMPLIED  -- override color --
762   thickness   %Length;       #IMPLIED  -- override line thickness --
763   x           %Lengths;      #REQUIRED -- horizontal positions --
764   y           %Lengths;      #REQUIRED -- vertical positions --
765   &gt;
766
767 &lt;!ELEMENT POLY - O EMPTY               -- polygon (filled) --&gt;
768 &lt;!ATTLIST POLY
769   color       %Color;        #IMPLIED  -- override color --
770   x           %Lengths;      #REQUIRED -- horizontal positions --
771   y           %Lengths;      #REQUIRED -- vertical positions --
772   &gt;
773
774 &lt;!ELEMENT ARC - O EMPTY                -- unfilled arc --&gt;
775 &lt;!ATTLIST ARC
776   color       %Color;        #IMPLIED  -- override color --
777   end         %Angle;        #IMPLIED  -- override end angle --
778   height      %Length;       #REQUIRED -- height of arc --
779   start       %Angle;        #IMPLIED  -- override start angle --
780   thickness   %Length;       #IMPLIED  -- override line thickness --
781   width       %Length;       #REQUIRED -- width of arc --
782   x           %Length;       #REQUIRED -- horizontal position --
783   y           %Length;       #REQUIRED -- vertical position --
784   &gt;
785
786 &lt;!ELEMENT PIE - O EMPTY                -- filled arc --&gt;
787 &lt;!ATTLIST PIE
788   color       %Color;        #IMPLIED  -- override color --
789   end         %Angle;        #IMPLIED  -- override end angle --
790   height      %Length;       #REQUIRED -- height of arc --
791   start       %Angle;        #IMPLIED  -- override start angle --
792   width       %Length;       #REQUIRED -- width of arc --
793   x           %Length;       #REQUIRED -- horizontal position --
794   y           %Length;       #REQUIRED -- vertical position --
795   &gt;
796
797 &lt;!ELEMENT TEXT - - (%flow;)*           -- text box --&gt;
798 &lt;!ATTLIST RECT
799   align       (left|center|right) #IMPLIED -- horizontal alignment --
800   height      %Length;       #REQUIRED -- height of box --
801   valign      (top|middle|center|bottom) #IMPLIED -- vertical alignment --
802   width       %Length;       #REQUIRED -- width of box --
803   x           %Length;       #REQUIRED -- horizontal position --
804   y           %Length;       #REQUIRED -- vertical position --
805   &gt;
806
807
808 &lt;!ELEMENT IMG - O EMPTY                -- Embedded image --&gt;
809 &lt;!ATTLIST IMG
810   %attrs;                              -- %coreattrs, %i18n, %events --
811   src         %URI;          #REQUIRED -- URI of image to embed --
812   height      %Length;       #IMPLIED  -- override height --
813   width       %Length;       #IMPLIED  -- override width --
814   &gt;
815
816 &lt;!ELEMENT HEAD O O (DEFVAR)*           -- document head --&gt;
817 &lt;!ATTLIST HEAD
818   %i18n;                               -- lang, dir --
819   &gt;
820
821 &lt;!ELEMENT DEFVAR - O EMPTY             -- variable definition --&gt;
822 &lt;!ATTLIST DEFVAR
823   name        CDATA          #REQUIRED -- name
824   value       CDATA          #REQUIRED -- value
825   &gt;
826
827
828 &lt;!ENTITY % html.content &quot;HEAD, PAGE&quot;&gt;
829
830 &lt;!ELEMENT CUPSFORM - - (HEAD) (PAGE)+  -- document root element --&gt;
831 &lt;!ATTLIST CUPSFORM
832   %i18n;                               -- lang, dir --
833   &gt;
834 </PRE>
835 </TD></TR>
836 </TABLE>
837 </CENTER>
838 </P>
839 <H2><A NAME="4_4">4.4 CUPS PostScript File</A></H2>
840 <P>CUPS PostScript files are device-dependent Adobe PostScript program
841  files. The PostScript language is described in the<A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/PLRM.pdf">
842  Adobe PostScript Language Reference Manual, Third Edition</A>.</P>
843 <P>The MIME type for CUPS PostScript files is <CODE>
844 application/vnd.cups-postscript</CODE>.</P>
845 <H2><A NAME="4_5">4.5 CUPS Raster File</A></H2>
846 <P>CUPS raster files are device-dependent raster image files that
847  contain a PostScript page device dictionary and device-dependent raster
848  imagery for each page in the document. These files are used to transfer
849  raster data from the PostScript and image file RIPs to device-dependent
850  filters that convert the raster data to a printable format.</P>
851 <P>A raster file begins with a four byte synchronization word:
852  0x52615374 (&quot;RaSt&quot;) for big-endian architectures and 0x74536152
853  (&quot;tSaR&quot;) for little-endian architectures. The writer of the raster file
854  will use the native word order, and the reader is responsible for
855  detecting a reversed word order file and swapping bytes as needed. The
856  CUPS Image Library raster functions perform this function
857  automatically.</P>
858 <P>Following the synchronization word are a series of raster pages. Each
859  page starts with a page device dictionary header and is followed
860  immediately by the raster data for that page.
861 <CENTER>
862 <TABLE BORDER="1" WIDTH="80%">
863 <TR><TH WIDTH="10%">Bytes</TH><TH WIDTH="20%">Description</TH><TH>Values</TH>
864 </TR>
865 <TR><TD>0-63</TD><TD>MediaClass</TD><TD>Nul-terminated ASCII string</TD></TR>
866 <TR><TD>64-127</TD><TD>MediaColor</TD><TD>Nul-terminated ASCII string</TD>
867 </TR>
868 <TR><TD>128-191</TD><TD>MediaType</TD><TD>Nul-terminated ASCII string</TD>
869 </TR>
870 <TR><TD>192-255</TD><TD>OutputType</TD><TD>Nul-terminated ASCII string</TD>
871 </TR>
872 <TR><TD>256-259</TD><TD>AdvanceDistance</TD><TD>0 to 2<SUP>32</SUP> - 1
873  points</TD></TR>
874 <TR><TD>260-263</TD><TD>AdvanceMedia</TD><TD>0 = Never advance roll
875 <BR> 1 = Advance roll after file
876 <BR> 2 = Advance roll after job
877 <BR> 3 = Advance roll after set
878 <BR> 4 = Advance roll after page</TD></TR>
879 <TR><TD>264-267</TD><TD>Collate</TD><TD>0 = do not collate copies
880 <BR> 1 = collate copies</TD></TR>
881 <TR><TD>268-271</TD><TD>CutMedia</TD><TD>0 = Never cut media
882 <BR> 1 = Cut roll after file
883 <BR> 2 = Cut roll after job
884 <BR> 3 = Cut roll after set
885 <BR> 4 = Cut roll after page</TD></TR>
886 <TR><TD>272-275</TD><TD>Duplex</TD><TD>0 = Print single-sided
887 <BR> 1 = Print double-sided</TD></TR>
888 <TR><TD>276-283</TD><TD>HWResolution</TD><TD>Horizontal and vertical
889  resolution in dots-per-inch.</TD></TR>
890 <TR><TD>284-299</TD><TD>ImagingBoundingBox</TD><TD>Four integers giving
891  the left, bottom, right, and top positions of the page bounding box in
892  points</TD></TR>
893 <TR><TD>300-303</TD><TD>InsertSheet</TD><TD>0 = Do not insert separator
894  sheets
895 <BR> 1 = Insert separator sheets</TD></TR>
896 <TR><TD>304-307</TD><TD>Jog</TD><TD>0 = Do no jog pages
897 <BR> 1 = Jog pages after file
898 <BR> 2 = Jog pages after job
899 <BR> 3 = Jog pages after set</TD></TR>
900 <TR><TD>308-311</TD><TD>LeadingEdge</TD><TD>0 = Top edge is first
901 <BR> 1 = Right edge is first
902 <BR> 2 = Bottom edge is first
903 <BR> 3 = Left edge is first</TD></TR>
904 <TR><TD>312-319</TD><TD>Margins</TD><TD>Left and bottom origin of image
905  in points</TD></TR>
906 <TR><TD>320-323</TD><TD>ManualFeed</TD><TD>0 = Do not manually feed
907  media
908 <BR> 1 = Manually feed media</TD></TR>
909 <TR><TD>324-327</TD><TD>MediaPosition</TD><TD>Input slot position from 0
910  to N</TD></TR>
911 <TR><TD>328-331</TD><TD>MediaWeight</TD><TD>Media weight in grams per
912  meter squared</TD></TR>
913 <TR><TD>332-335</TD><TD>MirrorPrint</TD><TD>0 = Do not mirror prints
914 <BR> 1 = Mirror prints</TD></TR>
915 <TR><TD>336-339</TD><TD>NegativePrint</TD><TD>0 = Do not invert prints
916 <BR> 1 = Invert prints</TD></TR>
917 <TR><TD>340-343</TD><TD>NumCopies</TD><TD>1 to 2<SUP>32</SUP> - 1</TD></TR>
918 <TR><TD>344-347</TD><TD>Orientation</TD><TD>0 = Do not rotate page
919 <BR> 1 = Rotate page counter-clockwise
920 <BR> 2 = Turn page upside down
921 <BR> 3 = Rotate page clockwise</TD></TR>
922 <TR><TD>348-351</TD><TD>OutputFaceUp</TD><TD>0 = Output face down
923 <BR> 1 = Output face up</TD></TR>
924 <TR><TD>352-359</TD><TD>PageSize</TD><TD>Width and length in points</TD></TR>
925 <TR><TD>360-363</TD><TD>Separations</TD><TD>0 = Print composite image
926 <BR> 1 = Print color separations</TD></TR>
927 <TR><TD>364-367</TD><TD>TraySwitch</TD><TD>0 = Do not change trays if
928  selected tray is empty
929 <BR> 1 = Change trays if selected tray is empty</TD></TR>
930 <TR><TD>368-371</TD><TD>Tumble</TD><TD>0 = Do not rotate even pages when
931  duplexing
932 <BR> 1 = Rotate even pages when duplexing</TD></TR>
933 <TR><TD>372-375</TD><TD>cupsWidth</TD><TD>Width of page image in pixels</TD>
934 </TR>
935 <TR><TD>376-379</TD><TD>cupsHeight</TD><TD>Height of page image in
936  pixels</TD></TR>
937 <TR><TD>380-383</TD><TD>cupsMediaType</TD><TD>Driver-specific 0 to 2<SUP>
938 32</SUP> - 1</TD></TR>
939 <TR><TD>384-387</TD><TD>cupsBitsPerColor</TD><TD>1, 2, 4, 8 bits</TD></TR>
940 <TR><TD>388-391</TD><TD>cupsBitsPerPixel</TD><TD>1 to 32 bits</TD></TR>
941 <TR><TD>392-395</TD><TD>cupsBytesPerLine</TD><TD>1 to 2<SUP>32</SUP> - 1
942  bytes</TD></TR>
943 <TR><TD>396-399</TD><TD>cupsColorOrder</TD><TD>0 = chunky pixels (CMYK
944  CMYK CMYK)
945 <BR> 1 = banded pixels (CCC MMM YYY KKK)
946 <BR> 2 = planar pixels (CCC... MMM... YYY... KKK...)</TD></TR>
947 <TR><TD>400-403</TD><TD>cupsColorSpace</TD><TD>0 = white
948 <BR> 1 = RGB
949 <BR> 2 = RGBA
950 <BR> 3 = black
951 <BR> 4 = CMY
952 <BR> 5 = YMC
953 <BR> 6 = CMYK
954 <BR> 7 = YMCK
955 <BR> 8 = KCMY
956 <BR> 9 = KCMYcm</TD></TR>
957 <TR><TD>404-407</TD><TD>cupsCompression</TD><TD>Driver-specific 0 to 2<SUP>
958 32</SUP> - 1</TD></TR>
959 <TR><TD>408-411</TD><TD>cupsRowCount</TD><TD>Driver-specific 0 to 2<SUP>
960 32</SUP> - 1</TD></TR>
961 <TR><TD>412-415</TD><TD>cupsRowFeed</TD><TD>Driver-specific 0 to 2<SUP>
962 32</SUP> - 1</TD></TR>
963 <TR><TD>416-419</TD><TD>cupsRowStep</TD><TD>Driver-specific 0 to 2<SUP>
964 32</SUP> - 1</TD></TR>
965 </TABLE>
966 </CENTER>
967 </P>
968 <P>The MIME type for CUPS Raster files is <CODE>
969 application/vnd.cups-raster</CODE>.</P>
970 <H2><A NAME="4_6">4.6 CUPS Raw Files</A></H2>
971 <P>Raw files are printer-dependent print files that are in a format
972  suitable to the destination printer (e.g. HP-PCL, HP-RTL, etc.) The
973  MIME type for CUPS Raw files is <CODE>application/vnd.cups-raw</CODE>.</P>
974 <H2><A NAME="4_7">4.7 Internet Printing Protocol</A></H2>
975 <P>The Internet Printing Protocol and the CUPS extensions to it are
976  described in the CUPS Implementation of IPP document.</P>
977 <H2><A NAME="4_8">4.8 Line Printer Daemon Protocol</A></H2>
978 <P>The Line Printer Daemon (LPD) protocol is described by<A HREF="http://www.ietf.org/rfc/rfc1179.txt">
979  RFC 1179: Line Printer Daemon Protocol</A>.</P>
980 <P>The URI method name for LPD is &quot;lpd&quot;.</P>
981 <H2><A NAME="4_9">4.9 Server Message Block Protocol</A></H2>
982 <P>The Server Message Block (SMB) and related Common Internet File
983  System (CIFS) protocols are described at<A HREF="http://anu.samba.org/cifs">
984  http://anu.samba.org/cifs</A>.</P>
985 <P>The URI method name for SMB is &quot;smb&quot;. Support for this protocol is
986  provided via the SAMBA <CODE>smbspool(1)</CODE> program provided with
987  SAMBA 2.0.6 and higher.</P>
988 <H1><A NAME="5">5 Directories</A></H1>
989 <DL>
990 <DT>/etc/cups</DT>
991 <DD>The scheduler configuration and MIME files reside here.</DD>
992 <DT>/etc/cups/certs</DT>
993 <DD>The authentication certificates reside here.</DD>
994 <DT>/etc/cups/interfaces</DT>
995 <DD>System V interface scripts reside here.</DD>
996 <DT>/etc/cups/ppd</DT>
997 <DD>This directory contains PPD files for each printer.</DD>
998 <DT>/usr/bin</DT>
999 <DD>The <CODE>cancel</CODE>, <CODE>lp</CODE>, <CODE>lpq</CODE>, <CODE>
1000 lpr</CODE>, <CODE>lprm</CODE>, and <CODE>lpstat</CODE> commands reside
1001  here.</DD>
1002 <DT>/usr/lib, /usr/lib32</DT>
1003 <DD>The shared libraries (DSOs) reside here.</DD>
1004 <DT>/usr/lib/cups/backend</DT>
1005 <DD>The backend filters reside here.</DD>
1006 <DT>/usr/lib/cups/cgi-bin</DT>
1007 <DD>The CGI programs reside here.</DD>
1008 <DT>/usr/lib/cups/daemon</DT>
1009 <DD>The polling and LPD daemons reside here.</DD>
1010 <DT>/usr/lib/cups/filter</DT>
1011 <DD>The file filters reside here.</DD>
1012 <DT>/usr/sbin</DT>
1013 <DD>The <CODE>accept</CODE>, <CODE>cupsd</CODE>, <CODE>lpadmin</CODE>, <CODE>
1014 lpc</CODE>, and <CODE>reject</CODE> commands reside here.</DD>
1015 <DT>/usr/share/cups</DT>
1016 <DD>This is the root directory of the CUPS static data.</DD>
1017 <DT>/usr/share/cups/charsets</DT>
1018 <DD>The character set files reside here.</DD>
1019 <DT>/usr/share/cups/data</DT>
1020 <DD>The filter data files reside here.</DD>
1021 <DT>/usr/share/cups/fonts</DT>
1022 <DD>The <CODE>pstoraster</CODE> font files reside here.</DD>
1023 <DT>/usr/share/cups/model</DT>
1024 <DD>The sample PPD files reside here.</DD>
1025 <DT>/usr/share/cups/pstoraster</DT>
1026 <DD>The <CODE>pstoraster</CODE> data files reside here.</DD>
1027 <DT>/usr/share/doc/cups</DT>
1028 <DD>The scheduler documentation files reside here.</DD>
1029 <DT>/var/log/cups</DT>
1030 <DD>The <CODE>access_log</CODE>, <CODE>error_log</CODE>, and <CODE>
1031 page_log</CODE> files reside here.</DD>
1032 <DT>/var/spool/cups</DT>
1033 <DD>This directory contains print job files.</DD>
1034 </DL>
1035 <H1 TYPE="A" VALUE="1"><A NAME="6">A Glossary</A></H1>
1036 <H2><A NAME="6_1">A.1 Terms</A></H2>
1037 <DL>
1038 <DT>C</DT>
1039 <DD>A computer language.</DD>
1040 <DT>parallel</DT>
1041 <DD>Sending or receiving data more than 1 bit at a time.</DD>
1042 <DT>pipe</DT>
1043 <DD>A one-way communications channel between two programs.</DD>
1044 <DT>serial</DT>
1045 <DD>Sending or receiving data 1 bit at a time.</DD>
1046 <DT>socket</DT>
1047 <DD>A two-way network communications channel.</DD>
1048 </DL>
1049 <H2><A NAME="6_2">A.2 Acronyms</A></H2>
1050 <DL>
1051 <DT>ASCII</DT>
1052 <DD>American Standard Code for Information Interchange</DD>
1053 <DT>CUPS</DT>
1054 <DD>Common UNIX Printing System</DD>
1055 <DT>ESC/P</DT>
1056 <DD>EPSON Standard Code for Printers</DD>
1057 <DT>FTP</DT>
1058 <DD>File Transfer Protocol</DD>
1059 <DT>HP-GL</DT>
1060 <DD>Hewlett-Packard Graphics Language</DD>
1061 <DT>HP-PCL</DT>
1062 <DD>Hewlett-Packard Page Control Language</DD>
1063 <DT>HP-PJL</DT>
1064 <DD>Hewlett-Packard Printer Job Language</DD>
1065 <DT>IETF</DT>
1066 <DD>Internet Engineering Task Force</DD>
1067 <DT>IPP</DT>
1068 <DD>Internet Printing Protocol</DD>
1069 <DT>ISO</DT>
1070 <DD>International Standards Organization</DD>
1071 <DT>LPD</DT>
1072 <DD>Line Printer Daemon</DD>
1073 <DT>MIME</DT>
1074 <DD>Multimedia Internet Mail Exchange</DD>
1075 <DT>PPD</DT>
1076 <DD>PostScript Printer Description</DD>
1077 <DT>SMB</DT>
1078 <DD>Server Message Block</DD>
1079 <DT>TFTP</DT>
1080 <DD>Trivial File Transfer Protocol</DD>
1081 </DL>
1082 </BODY>
1083 </HTML>