1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
3 <!-- SECTION: Programming -->
5 <title>CUPS API
</title>
6 <meta name='keywords' content='Programming'
>
7 <meta name='creator' content='Mini-XML v2.3'
>
8 <style type='text/css'
><!--
9 h1, h2, h3, p { font-family: sans-serif; text-align: justify; }
10 tt, pre a:link, pre a:visited, tt a:link, tt a:visited { font-weight: bold; color: #7f0000; }
11 pre { font-weight: bold; color: #7f0000; margin-left: 2em; }
12 span.info { background: #000000; border: solid thin #000000; color: #ffffff; font-size: 80%; font-style: italic; font-weight: bold; white-space: nowrap; }
13 h3 span.info { float: right; font-size: 100%; }
14 h1.title, h2.title, h3.title { border-bottom: solid 2px #000000; }
19 "$Id: api-cups.shtml 5138 2006-02-21 10:49:06Z mike $"
21 CUPS API introduction for the Common UNIX Printing System (CUPS).
23 Copyright 1997-2006 by Easy Software Products.
25 These coded instructions, statements, and computer programs are the
26 property of Easy Software Products and are protected by Federal
27 copyright law. Distribution and use rights are outlined in the file
28 "LICENSE.txt" which should have been included with this file. If this
29 file is missing or damaged please contact Easy Software Products
32 Attn: CUPS Licensing Information
33 Easy Software Products
34 44141 Airport View Drive, Suite 204
35 Hollywood, Maryland 20636 USA
38 EMail: cups-info@cups.org
39 WWW: http://www.cups.org
42 <h2 class='title'
>Introduction
</h2>
44 <p>The CUPS library provides a whole collection of interfaces
45 needed to support the internal needs of the CUPS software as well
46 as the needs of applications, filters, printer drivers, and
49 <p>Unlike the rest of CUPS, the CUPS API library is provided
50 under the GNU Library General Public License. This means that you
51 can use the CUPS API library in both proprietary and open-source
54 <h2 class='title'
>General Usage
</h2>
56 <p>The
<var><cups/cups.h
></var> header file must be included to
57 use the CUPS functions.
</p>
59 <p>Programs using these functions must be linked to the CUPS
60 library:
<var>libcups.a
</var>,
<var>libcups.so
.2</var>,
61 <var>libcups
.2.dylib
</var>,
<var>libcups_s.a
</var>, or
62 <var>libcups2.lib
</var> depending on the platform. The following
63 command compiles
<var>myprogram.c
</var> using GCC and the CUPS
67 <kbd>gcc -o myprogram myprogram.c -lcups
</kbd>
70 <h2 class='title'
>Compatibility
</h2>
72 <p>Unless otherwise specified, the CUPS API functions require
73 CUPS
1.1 or higher.
</p>
74 <h2 class='title'
>Contents
</h2>
76 <li><a href='#ENUMERATIONS'
>Enumerations
</a></li>
77 <li><a href='#FUNCTIONS'
>Functions
</a></li>
78 <li><a href='#STRUCTURES'
>Structures
</a></li>
79 <li><a href='#TYPES'
>Types
</a></li>
82 <h2 class='title'
><a name='ENUMERATIONS'
>Enumerations
</a></h2>
84 <li><a href='#cups_ptype_e'
><tt>cups_ptype_e
</tt></a> </li>
87 <h3 class='title'
><a name='cups_ptype_e'
>cups_ptype_e
</a></h3>
89 <p>Not a typedef'd enum so we can OR
</p>
91 <div class='table'
><table align='center' border='
1' width='
80%'
>
92 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
94 <tr><td><tt>CUPS_PRINTER_AUTHENTICATED
</tt> <span class='info'
> CUPS
1.2 </span></td><td>Printer requires authentication
</td></tr>
95 <tr><td><tt>CUPS_PRINTER_BIND
</tt> </td><td>Can bind output
</td></tr>
96 <tr><td><tt>CUPS_PRINTER_BW
</tt> </td><td>Can do B
&W printing
</td></tr>
97 <tr><td><tt>CUPS_PRINTER_CLASS
</tt> </td><td>Printer class
</td></tr>
98 <tr><td><tt>CUPS_PRINTER_COLLATE
</tt> </td><td>Can collage copies
</td></tr>
99 <tr><td><tt>CUPS_PRINTER_COLOR
</tt> </td><td>Can do color printing
</td></tr>
100 <tr><td><tt>CUPS_PRINTER_COPIES
</tt> </td><td>Can do copies
</td></tr>
101 <tr><td><tt>CUPS_PRINTER_COVER
</tt> </td><td>Can cover output
</td></tr>
102 <tr><td><tt>CUPS_PRINTER_DEFAULT
</tt> </td><td>Default printer on network
</td></tr>
103 <tr><td><tt>CUPS_PRINTER_DELETE
</tt> <span class='info'
> CUPS
1.2 </span></td><td>Delete printer
</td></tr>
104 <tr><td><tt>CUPS_PRINTER_DUPLEX
</tt> </td><td>Can do duplexing
</td></tr>
105 <tr><td><tt>CUPS_PRINTER_FAX
</tt> </td><td>Fax queue
</td></tr>
106 <tr><td><tt>CUPS_PRINTER_IMPLICIT
</tt> </td><td>Implicit class
</td></tr>
107 <tr><td><tt>CUPS_PRINTER_LARGE
</tt> </td><td>Can do D/E/A1/A0
</td></tr>
108 <tr><td><tt>CUPS_PRINTER_LOCAL
</tt> </td><td>Local printer or class
</td></tr>
109 <tr><td><tt>CUPS_PRINTER_MEDIUM
</tt> </td><td>Can do Tabloid/B/C/A3/A2
</td></tr>
110 <tr><td><tt>CUPS_PRINTER_NOT_SHARED
</tt> <span class='info'
> CUPS
1.2 </span></td><td>Printer is not shared
</td></tr>
111 <tr><td><tt>CUPS_PRINTER_OPTIONS
</tt> </td><td>~(CLASS | REMOTE | IMPLICIT)
</td></tr>
112 <tr><td><tt>CUPS_PRINTER_PUNCH
</tt> </td><td>Can punch output
</td></tr>
113 <tr><td><tt>CUPS_PRINTER_REJECTING
</tt> </td><td>Printer is rejecting jobs
</td></tr>
114 <tr><td><tt>CUPS_PRINTER_REMOTE
</tt> </td><td>Remote printer or class
</td></tr>
115 <tr><td><tt>CUPS_PRINTER_SMALL
</tt> </td><td>Can do Letter/Legal/A4
</td></tr>
116 <tr><td><tt>CUPS_PRINTER_SORT
</tt> </td><td>Can sort output
</td></tr>
117 <tr><td><tt>CUPS_PRINTER_STAPLE
</tt> </td><td>Can staple output
</td></tr>
118 <tr><td><tt>CUPS_PRINTER_VARIABLE
</tt> </td><td>Can do variable sizes
</td></tr>
119 </tbody></table></div>
121 <h2 class='title'
><a name='FUNCTIONS'
>Functions
</a></h2>
123 <li><a href='#cupsAddDest'
><tt>cupsAddDest()
</tt></a> </li>
124 <li><a href='#cupsAddOption'
><tt>cupsAddOption()
</tt></a> </li>
125 <li><a href='#cupsCancelJob'
><tt>cupsCancelJob()
</tt></a> </li>
126 <li><a href='#cupsEncryption'
><tt>cupsEncryption()
</tt></a> </li>
127 <li><a href='#cupsFreeDests'
><tt>cupsFreeDests()
</tt></a> </li>
128 <li><a href='#cupsFreeJobs'
><tt>cupsFreeJobs()
</tt></a> </li>
129 <li><a href='#cupsFreeOptions'
><tt>cupsFreeOptions()
</tt></a> </li>
130 <li><a href='#cupsGetClasses'
><tt>cupsGetClasses()
</tt></a> <span class='info'
> DEPRECATED
</span></li>
131 <li><a href='#cupsGetDefault'
><tt>cupsGetDefault()
</tt></a> </li>
132 <li><a href='#cupsGetDefault2'
><tt>cupsGetDefault2()
</tt></a> <span class='info'
> CUPS
1.1.21 </span></li>
133 <li><a href='#cupsGetDest'
><tt>cupsGetDest()
</tt></a> </li>
134 <li><a href='#cupsGetDests'
><tt>cupsGetDests()
</tt></a> </li>
135 <li><a href='#cupsGetDests2'
><tt>cupsGetDests2()
</tt></a> <span class='info'
> CUPS
1.1.21 </span></li>
136 <li><a href='#cupsGetFd'
><tt>cupsGetFd()
</tt></a> <span class='info'
> CUPS
1.1.20 </span></li>
137 <li><a href='#cupsGetFile'
><tt>cupsGetFile()
</tt></a> <span class='info'
> CUPS
1.1.20 </span></li>
138 <li><a href='#cupsGetJobs'
><tt>cupsGetJobs()
</tt></a> </li>
139 <li><a href='#cupsGetJobs2'
><tt>cupsGetJobs2()
</tt></a> <span class='info'
> CUPS
1.1.21 </span></li>
140 <li><a href='#cupsGetOption'
><tt>cupsGetOption()
</tt></a> </li>
141 <li><a href='#cupsGetPPD'
><tt>cupsGetPPD()
</tt></a> </li>
142 <li><a href='#cupsGetPPD2'
><tt>cupsGetPPD2()
</tt></a> <span class='info'
> CUPS
1.1.21 </span></li>
143 <li><a href='#cupsGetPassword'
><tt>cupsGetPassword()
</tt></a> </li>
144 <li><a href='#cupsGetPrinters'
><tt>cupsGetPrinters()
</tt></a> <span class='info'
> DEPRECATED
</span></li>
145 <li><a href='#cupsLangDefault'
><tt>cupsLangDefault()
</tt></a> </li>
146 <li><a href='#cupsLangEncoding'
><tt>cupsLangEncoding()
</tt></a> </li>
147 <li><a href='#cupsLangFlush'
><tt>cupsLangFlush()
</tt></a> </li>
148 <li><a href='#cupsLangFree'
><tt>cupsLangFree()
</tt></a> </li>
149 <li><a href='#cupsLangGet'
><tt>cupsLangGet()
</tt></a> </li>
150 <li><a href='#cupsLastError'
><tt>cupsLastError()
</tt></a> </li>
151 <li><a href='#cupsLastErrorString'
><tt>cupsLastErrorString()
</tt></a> <span class='info'
> CUPS
1.2 </span></li>
152 <li><a href='#cupsMarkOptions'
><tt>cupsMarkOptions()
</tt></a> </li>
153 <li><a href='#cupsParseOptions'
><tt>cupsParseOptions()
</tt></a> </li>
154 <li><a href='#cupsPrintFile'
><tt>cupsPrintFile()
</tt></a> </li>
155 <li><a href='#cupsPrintFile2'
><tt>cupsPrintFile2()
</tt></a> <span class='info'
> CUPS
1.1.21 </span></li>
156 <li><a href='#cupsPrintFiles'
><tt>cupsPrintFiles()
</tt></a> </li>
157 <li><a href='#cupsPrintFiles2'
><tt>cupsPrintFiles2()
</tt></a> <span class='info'
> CUPS
1.1.21 </span></li>
158 <li><a href='#cupsPutFd'
><tt>cupsPutFd()
</tt></a> <span class='info'
> CUPS
1.1.20 </span></li>
159 <li><a href='#cupsPutFile'
><tt>cupsPutFile()
</tt></a> <span class='info'
> CUPS
1.1.20 </span></li>
160 <li><a href='#cupsServer'
><tt>cupsServer()
</tt></a> </li>
161 <li><a href='#cupsSetDests'
><tt>cupsSetDests()
</tt></a> </li>
162 <li><a href='#cupsSetDests2'
><tt>cupsSetDests2()
</tt></a> <span class='info'
> CUPS
1.1.21 </span></li>
163 <li><a href='#cupsSetEncryption'
><tt>cupsSetEncryption()
</tt></a> </li>
164 <li><a href='#cupsSetPasswordCB'
><tt>cupsSetPasswordCB()
</tt></a> </li>
165 <li><a href='#cupsSetServer'
><tt>cupsSetServer()
</tt></a> </li>
166 <li><a href='#cupsSetUser'
><tt>cupsSetUser()
</tt></a> </li>
167 <li><a href='#cupsTempFd'
><tt>cupsTempFd()
</tt></a> </li>
168 <li><a href='#cupsTempFile'
><tt>cupsTempFile()
</tt></a> <span class='info'
> DEPRECATED
</span></li>
169 <li><a href='#cupsTempFile2'
><tt>cupsTempFile2()
</tt></a> <span class='info'
> CUPS
1.2 </span></li>
170 <li><a href='#cupsUser'
><tt>cupsUser()
</tt></a> </li>
173 <h3 class='title'
><a name='cupsAddDest'
>cupsAddDest()
</a></h3>
175 <p>Add a destination to the list of destinations.
177 Use the cupsSaveDests() function to save the updated list of destinations
178 to the user's lpoptions file.
</p>
184 const char * instance,
186 <a href='#cups_dest_t'
>cups_dest_t
</a> ** dests);
189 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
190 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
192 <tr><td><tt>name
</tt></td><td>Name of destination
</td></tr>
193 <tr><td><tt>instance
</tt></td><td>Instance of destination or NULL for none/primary
</td></tr>
194 <tr><td><tt>num_dests
</tt></td><td>Number of destinations
</td></tr>
195 <tr><td><tt>dests
</tt></td><td>Destinations
</td></tr>
196 </tbody></table></div>
198 <p>New number of destinations
</p>
200 <h3 class='title'
><a name='cupsAddOption'
>cupsAddOption()
</a></h3>
202 <p>Add an option to an option array.
</p>
210 <a href='#cups_option_t'
>cups_option_t
</a> ** options);
213 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
214 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
216 <tr><td><tt>name
</tt></td><td>Name of option
</td></tr>
217 <tr><td><tt>value
</tt></td><td>Value of option
</td></tr>
218 <tr><td><tt>num_options
</tt></td><td>Number of options
</td></tr>
219 <tr><td><tt>options
</tt></td><td>Pointer to options
</td></tr>
220 </tbody></table></div>
222 <p>Number of options
</p>
224 <h3 class='title'
><a name='cupsCancelJob'
>cupsCancelJob()
</a></h3>
226 <p>Cancel a print job on the default server.
228 Use the cupsLastError() and cupsLastErrorString() functions to get
229 the cause of any failure.
</p>
238 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
239 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
241 <tr><td><tt>name
</tt></td><td>Name of printer or class
</td></tr>
242 <tr><td><tt>job
</tt></td><td>Job ID
</td></tr>
243 </tbody></table></div>
245 <p>1 on success,
0 on failure
</p>
247 <h3 class='title'
><a name='cupsEncryption'
>cupsEncryption()
</a></h3>
249 <p>Get the default encryption settings.
251 The default encryption setting comes from the CUPS_ENCRYPTION
252 environment variable, then the ~/.cupsrc file, and finally the
253 /etc/cups/client.conf file. If not set, the default is
254 HTTP_ENCRYPT_IF_REQUESTED.
</p>
258 cupsEncryption(void);
263 <p>Encryption settings
</p>
265 <h3 class='title'
><a name='cupsFreeDests'
>cupsFreeDests()
</a></h3>
267 <p>Free the memory used by the list of destinations.
</p>
273 <a href='#cups_dest_t'
>cups_dest_t
</a> * dests);
276 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
277 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
279 <tr><td><tt>num_dests
</tt></td><td>Number of destinations
</td></tr>
280 <tr><td><tt>dests
</tt></td><td>Destinations
</td></tr>
281 </tbody></table></div>
285 <h3 class='title'
><a name='cupsFreeJobs'
>cupsFreeJobs()
</a></h3>
287 <p>Free memory used by job data.
</p>
293 <a href='#cups_job_t'
>cups_job_t
</a> * jobs);
296 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
297 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
299 <tr><td><tt>num_jobs
</tt></td><td>Number of jobs
</td></tr>
300 <tr><td><tt>jobs
</tt></td><td>Jobs
</td></tr>
301 </tbody></table></div>
305 <h3 class='title'
><a name='cupsFreeOptions'
>cupsFreeOptions()
</a></h3>
307 <p>Free all memory used by options.
</p>
313 <a href='#cups_option_t'
>cups_option_t
</a> * options);
316 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
317 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
319 <tr><td><tt>num_options
</tt></td><td>Number of options
</td></tr>
320 <tr><td><tt>options
</tt></td><td>Pointer to options
</td></tr>
321 </tbody></table></div>
325 <h3 class='title'
><span class='info'
> DEPRECATED
</span><a name='cupsGetClasses'
>cupsGetClasses()
</a></h3>
327 <p>Get a list of printer classes from the default server.
329 This function is deprecated - use cupsGetDests() instead.
339 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
340 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
342 <tr><td><tt>classes
</tt></td><td>Classes
</td></tr>
343 </tbody></table></div>
345 <p>Number of classes
</p>
347 <h3 class='title'
><a name='cupsGetDefault'
>cupsGetDefault()
</a></h3>
349 <p>Get the default printer or class for the default server.
351 This function returns the default printer or class as defined by
352 the LPDEST or PRINTER environment variables. If these environment
353 variables are not set, the server default destination is returned.
354 Applications should use the cupsGetDests() and cupsGetDest() functions
355 to get the user-defined default printer, as this function does not
356 support the lpoptions-defined default printer.
</p>
360 cupsGetDefault(void);
365 <p>Default printer or NULL
</p>
367 <h3 class='title'
><span class='info'
> CUPS
1.1.21 </span><a name='cupsGetDefault2'
>cupsGetDefault2()
</a></h3>
369 <p>Get the default printer or class for the specified server.
371 This function returns the default printer or class as defined by
372 the LPDEST or PRINTER environment variables. If these environment
373 variables are not set, the server default destination is returned.
374 Applications should use the cupsGetDests() and cupsGetDest() functions
375 to get the user-defined default printer, as this function does not
376 support the lpoptions-defined default printer.
386 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
387 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
389 <tr><td><tt>http
</tt></td><td>HTTP connection
</td></tr>
390 </tbody></table></div>
392 <p>Default printer or NULL
</p>
394 <h3 class='title'
><a name='cupsGetDest'
>cupsGetDest()
</a></h3>
396 <p>Get the named destination from the list.
398 Use the cupsGetDests() or cupsGetDests2() functions to get a
399 list of supported destinations for the current user.
</p>
402 <a href='#cups_dest_t'
>cups_dest_t
</a> *
405 const char * instance,
407 <a href='#cups_dest_t'
>cups_dest_t
</a> * dests);
410 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
411 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
413 <tr><td><tt>name
</tt></td><td>Name of destination
</td></tr>
414 <tr><td><tt>instance
</tt></td><td>Instance of destination
</td></tr>
415 <tr><td><tt>num_dests
</tt></td><td>Number of destinations
</td></tr>
416 <tr><td><tt>dests
</tt></td><td>Destinations
</td></tr>
417 </tbody></table></div>
419 <p>Destination pointer or NULL
</p>
421 <h3 class='title'
><a name='cupsGetDests'
>cupsGetDests()
</a></h3>
423 <p>Get the list of destinations from the default server.
425 Starting with CUPS
1.2, the returned list of destinations include the
426 printer-info, printer-is-accepting-jobs, printer-is-shared,
427 printer-make-and-model, printer-state, printer-state-change-time,
428 printer-state-reasons, and printer-type attributes as options.
</p>
433 <a href='#cups_dest_t'
>cups_dest_t
</a> ** dests);
436 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
437 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
439 <tr><td><tt>dests
</tt></td><td>Destinations
</td></tr>
440 </tbody></table></div>
442 <p>Number of destinations
</p>
444 <h3 class='title'
><span class='info'
> CUPS
1.1.21 </span><a name='cupsGetDests2'
>cupsGetDests2()
</a></h3>
446 <p>Get the list of destinations from the specified server.
448 Starting with CUPS
1.2, the returned list of destinations include the
449 printer-info, printer-is-accepting-jobs, printer-is-shared,
450 printer-make-and-model, printer-state, printer-state-change-time,
451 printer-state-reasons, and printer-type attributes as options.
459 <a href='#cups_dest_t'
>cups_dest_t
</a> ** dests);
462 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
463 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
465 <tr><td><tt>http
</tt></td><td>HTTP connection
</td></tr>
466 <tr><td><tt>dests
</tt></td><td>Destinations
</td></tr>
467 </tbody></table></div>
469 <p>Number of destinations
</p>
471 <h3 class='title'
><span class='info'
> CUPS
1.1.20 </span><a name='cupsGetFd'
>cupsGetFd()
</a></h3>
473 <p>Get a file from the server.
475 This function returns HTTP_OK when the file is successfully retrieved.
483 const char * resource,
487 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
488 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
490 <tr><td><tt>http
</tt></td><td>HTTP connection to server
</td></tr>
491 <tr><td><tt>resource
</tt></td><td>Resource name
</td></tr>
492 <tr><td><tt>fd
</tt></td><td>File descriptor
</td></tr>
493 </tbody></table></div>
497 <h3 class='title'
><span class='info'
> CUPS
1.1.20 </span><a name='cupsGetFile'
>cupsGetFile()
</a></h3>
499 <p>Get a file from the server.
501 This function returns HTTP_OK when the file is successfully retrieved.
509 const char * resource,
510 const char * filename);
513 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
514 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
516 <tr><td><tt>http
</tt></td><td>HTTP connection to server
</td></tr>
517 <tr><td><tt>resource
</tt></td><td>Resource name
</td></tr>
518 <tr><td><tt>filename
</tt></td><td>Filename
</td></tr>
519 </tbody></table></div>
523 <h3 class='title'
><a name='cupsGetJobs'
>cupsGetJobs()
</a></h3>
525 <p>Get the jobs from the default server.
</p>
530 <a href='#cups_job_t'
>cups_job_t
</a> ** jobs,
536 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
537 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
539 <tr><td><tt>jobs
</tt></td><td>Job data
</td></tr>
540 <tr><td><tt>mydest
</tt></td><td>NULL = all destinations, *
541 otherwise show jobs for mydest
</td></tr>
542 <tr><td><tt>myjobs
</tt></td><td>0 = all users,
1 = mine
</td></tr>
543 <tr><td><tt>completed
</tt></td><td>-
1 = show all,
0 = active, *
544 1 = completed jobs
</td></tr>
545 </tbody></table></div>
547 <p>Number of jobs
</p>
549 <h3 class='title'
><span class='info'
> CUPS
1.1.21 </span><a name='cupsGetJobs2'
>cupsGetJobs2()
</a></h3>
551 <p>Get the jobs from the specified server.
559 <a href='#cups_job_t'
>cups_job_t
</a> ** jobs,
565 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
566 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
568 <tr><td><tt>http
</tt></td><td>HTTP connection
</td></tr>
569 <tr><td><tt>jobs
</tt></td><td>Job data
</td></tr>
570 <tr><td><tt>mydest
</tt></td><td>NULL = all destinations, *
571 otherwise show jobs for mydest
</td></tr>
572 <tr><td><tt>myjobs
</tt></td><td>0 = all users,
1 = mine
</td></tr>
573 <tr><td><tt>completed
</tt></td><td>-
1 = show all,
0 = active, *
574 1 = completed jobs
</td></tr>
575 </tbody></table></div>
577 <p>Number of jobs
</p>
579 <h3 class='title'
><a name='cupsGetOption'
>cupsGetOption()
</a></h3>
581 <p>Get an option value.
</p>
588 <a href='#cups_option_t'
>cups_option_t
</a> * options);
591 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
592 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
594 <tr><td><tt>name
</tt></td><td>Name of option
</td></tr>
595 <tr><td><tt>num_options
</tt></td><td>Number of options
</td></tr>
596 <tr><td><tt>options
</tt></td><td>Options
</td></tr>
597 </tbody></table></div>
599 <p>Option value or NULL
</p>
601 <h3 class='title'
><a name='cupsGetPPD'
>cupsGetPPD()
</a></h3>
603 <p>Get the PPD file for a printer on the default server.
605 For classes, cupsGetPPD() returns the PPD file for the first printer
614 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
615 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
617 <tr><td><tt>name
</tt></td><td>Printer name
</td></tr>
618 </tbody></table></div>
620 <p>Filename for PPD file
</p>
622 <h3 class='title'
><span class='info'
> CUPS
1.1.21 </span><a name='cupsGetPPD2'
>cupsGetPPD2()
</a></h3>
624 <p>Get the PPD file for a printer from the specified server.
626 For classes, cupsGetPPD2() returns the PPD file for the first printer
638 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
639 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
641 <tr><td><tt>http
</tt></td><td>HTTP connection
</td></tr>
642 <tr><td><tt>name
</tt></td><td>Printer name
</td></tr>
643 </tbody></table></div>
645 <p>Filename for PPD file
</p>
647 <h3 class='title'
><a name='cupsGetPassword'
>cupsGetPassword()
</a></h3>
649 <p>Get a password from the user.
651 Uses the current password callback function. Returns NULL if the
652 user does not provide a password.
</p>
657 const char * prompt);
660 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
661 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
663 <tr><td><tt>prompt
</tt></td><td>Prompt string
</td></tr>
664 </tbody></table></div>
668 <h3 class='title'
><span class='info'
> DEPRECATED
</span><a name='cupsGetPrinters'
>cupsGetPrinters()
</a></h3>
670 <p>Get a list of printers from the default server.
672 This function is deprecated - use cupsGetDests() instead.
682 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
683 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
685 <tr><td><tt>printers
</tt></td><td>Printers
</td></tr>
686 </tbody></table></div>
688 <p>Number of printers
</p>
690 <h3 class='title'
><a name='cupsLangDefault'
>cupsLangDefault()
</a></h3>
692 <p>Return the default language.
</p>
696 cupsLangDefault(void);
703 <h3 class='title'
><a name='cupsLangEncoding'
>cupsLangEncoding()
</a></h3>
705 <p>Return the character encoding (us-ascii, etc.)
706 for the given language.
</p>
714 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
715 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
717 <tr><td><tt>lang
</tt></td><td>Language data
</td></tr>
718 </tbody></table></div>
720 <p>Character encoding
</p>
722 <h3 class='title'
><a name='cupsLangFlush'
>cupsLangFlush()
</a></h3>
724 <p>Flush all language data out of the cache.
</p>
735 <h3 class='title'
><a name='cupsLangFree'
>cupsLangFree()
</a></h3>
737 <p>Free language data.
739 This does not actually free anything; use cupsLangFlush() for that.
</p>
747 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
748 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
750 <tr><td><tt>lang
</tt></td><td>Language to free
</td></tr>
751 </tbody></table></div>
755 <h3 class='title'
><a name='cupsLangGet'
>cupsLangGet()
</a></h3>
757 <p>Get a language.
</p>
762 const char * language);
765 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
766 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
768 <tr><td><tt>language
</tt></td><td>Language or locale
</td></tr>
769 </tbody></table></div>
773 <h3 class='title'
><a name='cupsLastError'
>cupsLastError()
</a></h3>
775 <p>Return the last IPP status code.
</p>
784 <p>IPP status code from last request
</p>
786 <h3 class='title'
><span class='info'
> CUPS
1.2 </span><a name='cupsLastErrorString'
>cupsLastErrorString()
</a></h3>
788 <p>Return the last IPP status-message.
794 cupsLastErrorString(void);
799 <p>status-message text from last request
</p>
801 <h3 class='title'
><a name='cupsMarkOptions'
>cupsMarkOptions()
</a></h3>
803 <p>Mark command-line options in a PPD file.
</p>
810 <a href='#cups_option_t'
>cups_option_t
</a> * options);
813 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
814 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
816 <tr><td><tt>ppd
</tt></td><td>PPD file
</td></tr>
817 <tr><td><tt>num_options
</tt></td><td>Number of options
</td></tr>
818 <tr><td><tt>options
</tt></td><td>Options
</td></tr>
819 </tbody></table></div>
821 <p>1 if conflicting
</p>
823 <h3 class='title'
><a name='cupsParseOptions'
>cupsParseOptions()
</a></h3>
825 <p>Parse options from a command-line argument.
827 This function converts space-delimited name/value pairs according
828 to the PAPI text option ABNF specification. Collection values
829 (
"name={a=... b=... c=...}
") are stored with the curley brackets
830 intact - use cupsParseOptions() on the value to extract the collection
838 <a href='#cups_option_t'
>cups_option_t
</a> ** options);
841 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
842 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
844 <tr><td><tt>arg
</tt></td><td>Argument to parse
</td></tr>
845 <tr><td><tt>num_options
</tt></td><td>Number of options
</td></tr>
846 <tr><td><tt>options
</tt></td><td>Options found
</td></tr>
847 </tbody></table></div>
849 <p>Number of options found
</p>
851 <h3 class='title'
><a name='cupsPrintFile'
>cupsPrintFile()
</a></h3>
853 <p>Print a file to a printer or class on the default server.
</p>
859 const char * filename,
862 <a href='#cups_option_t'
>cups_option_t
</a> * options);
865 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
866 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
868 <tr><td><tt>name
</tt></td><td>Printer or class name
</td></tr>
869 <tr><td><tt>filename
</tt></td><td>File to print
</td></tr>
870 <tr><td><tt>title
</tt></td><td>Title of job
</td></tr>
871 <tr><td><tt>num_options
</tt></td><td>Number of options
</td></tr>
872 <tr><td><tt>options
</tt></td><td>Options
</td></tr>
873 </tbody></table></div>
877 <h3 class='title'
><span class='info'
> CUPS
1.1.21 </span><a name='cupsPrintFile2'
>cupsPrintFile2()
</a></h3>
879 <p>Print a file to a printer or class on the specified server.
888 const char * filename,
891 <a href='#cups_option_t'
>cups_option_t
</a> * options);
894 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
895 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
897 <tr><td><tt>http
</tt></td><td>HTTP connection
</td></tr>
898 <tr><td><tt>name
</tt></td><td>Printer or class name
</td></tr>
899 <tr><td><tt>filename
</tt></td><td>File to print
</td></tr>
900 <tr><td><tt>title
</tt></td><td>Title of job
</td></tr>
901 <tr><td><tt>num_options
</tt></td><td>Number of options
</td></tr>
902 <tr><td><tt>options
</tt></td><td>Options
</td></tr>
903 </tbody></table></div>
907 <h3 class='title'
><a name='cupsPrintFiles'
>cupsPrintFiles()
</a></h3>
909 <p>Print one or more files to a printer or class on the
920 <a href='#cups_option_t'
>cups_option_t
</a> * options);
923 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
924 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
926 <tr><td><tt>name
</tt></td><td>Printer or class name
</td></tr>
927 <tr><td><tt>num_files
</tt></td><td>Number of files
</td></tr>
928 <tr><td><tt>files
</tt></td><td>File(s) to print
</td></tr>
929 <tr><td><tt>title
</tt></td><td>Title of job
</td></tr>
930 <tr><td><tt>num_options
</tt></td><td>Number of options
</td></tr>
931 <tr><td><tt>options
</tt></td><td>Options
</td></tr>
932 </tbody></table></div>
936 <h3 class='title'
><span class='info'
> CUPS
1.1.21 </span><a name='cupsPrintFiles2'
>cupsPrintFiles2()
</a></h3>
938 <p>Print one or more files to a printer or class on the
952 <a href='#cups_option_t'
>cups_option_t
</a> * options);
955 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
956 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
958 <tr><td><tt>http
</tt></td><td>HTTP connection
</td></tr>
959 <tr><td><tt>name
</tt></td><td>Printer or class name
</td></tr>
960 <tr><td><tt>num_files
</tt></td><td>Number of files
</td></tr>
961 <tr><td><tt>files
</tt></td><td>File(s) to print
</td></tr>
962 <tr><td><tt>title
</tt></td><td>Title of job
</td></tr>
963 <tr><td><tt>num_options
</tt></td><td>Number of options
</td></tr>
964 <tr><td><tt>options
</tt></td><td>Options
</td></tr>
965 </tbody></table></div>
969 <h3 class='title'
><span class='info'
> CUPS
1.1.20 </span><a name='cupsPutFd'
>cupsPutFd()
</a></h3>
971 <p>Put a file on the server.
973 This function returns HTTP_CREATED when the file is stored successfully.
981 const char * resource,
985 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
986 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
988 <tr><td><tt>http
</tt></td><td>HTTP connection to server
</td></tr>
989 <tr><td><tt>resource
</tt></td><td>Resource name
</td></tr>
990 <tr><td><tt>fd
</tt></td><td>File descriptor
</td></tr>
991 </tbody></table></div>
995 <h3 class='title'
><span class='info'
> CUPS
1.1.20 </span><a name='cupsPutFile'
>cupsPutFile()
</a></h3>
997 <p>Put a file on the server.
999 This function returns HTTP_CREATED when the file is stored successfully.
1007 const char * resource,
1008 const char * filename);
1011 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
1012 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
1014 <tr><td><tt>http
</tt></td><td>HTTP connection to server
</td></tr>
1015 <tr><td><tt>resource
</tt></td><td>Resource name
</td></tr>
1016 <tr><td><tt>filename
</tt></td><td>Filename
</td></tr>
1017 </tbody></table></div>
1021 <h3 class='title'
><a name='cupsServer'
>cupsServer()
</a></h3>
1022 <h4>Description
</h4>
1023 <p>Return the hostname/address of the default server.
1025 The returned value can be a fully-qualified hostname, a numeric
1026 IPv4 or IPv6 address, or a domain socket pathname.
</p>
1037 <h3 class='title'
><a name='cupsSetDests'
>cupsSetDests()
</a></h3>
1038 <h4>Description
</h4>
1039 <p>Save the list of destinations for the default server.
1041 This function saves the destinations to /etc/cups/lpoptions when run
1042 as root and ~/.lpoptions when run as a normal user.
</p>
1048 <a href='#cups_dest_t'
>cups_dest_t
</a> * dests);
1051 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
1052 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
1054 <tr><td><tt>num_dests
</tt></td><td>Number of destinations
</td></tr>
1055 <tr><td><tt>dests
</tt></td><td>Destinations
</td></tr>
1056 </tbody></table></div>
1060 <h3 class='title'
><span class='info'
> CUPS
1.1.21 </span><a name='cupsSetDests2'
>cupsSetDests2()
</a></h3>
1061 <h4>Description
</h4>
1062 <p>Save the list of destinations for the specified server.
1064 This function saves the destinations to /etc/cups/lpoptions when run
1065 as root and ~/.lpoptions when run as a normal user.
1074 <a href='#cups_dest_t'
>cups_dest_t
</a> * dests);
1077 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
1078 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
1080 <tr><td><tt>http
</tt></td><td>HTTP connection
</td></tr>
1081 <tr><td><tt>num_dests
</tt></td><td>Number of destinations
</td></tr>
1082 <tr><td><tt>dests
</tt></td><td>Destinations
</td></tr>
1083 </tbody></table></div>
1085 <p>0 on success, -
1 on error
</p>
1087 <h3 class='title'
><a name='cupsSetEncryption'
>cupsSetEncryption()
</a></h3>
1088 <h4>Description
</h4>
1089 <p>Set the encryption preference.
</p>
1094 http_encryption_t e);
1097 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
1098 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
1100 <tr><td><tt>e
</tt></td><td>New encryption preference
</td></tr>
1101 </tbody></table></div>
1105 <h3 class='title'
><a name='cupsSetPasswordCB'
>cupsSetPasswordCB()
</a></h3>
1106 <h4>Description
</h4>
1107 <p>Set the password callback for CUPS.
1109 Pass NULL to restore the default (console) password callback.
</p>
1114 <a href='#cups_password_cb_t'
>cups_password_cb_t
</a> cb);
1117 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
1118 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
1120 <tr><td><tt>cb
</tt></td><td>Callback function
</td></tr>
1121 </tbody></table></div>
1125 <h3 class='title'
><a name='cupsSetServer'
>cupsSetServer()
</a></h3>
1126 <h4>Description
</h4>
1127 <p>Set the default server name.
1129 The
"server
" string can be a fully-qualified hostname, a numeric
1130 IPv4 or IPv6 address, or a domain socket pathname. Pass NULL to
1131 restore the default server name.
</p>
1136 const char * server);
1139 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
1140 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
1142 <tr><td><tt>server
</tt></td><td>Server name
</td></tr>
1143 </tbody></table></div>
1147 <h3 class='title'
><a name='cupsSetUser'
>cupsSetUser()
</a></h3>
1148 <h4>Description
</h4>
1149 <p>Set the default user name.
1151 Pass NULL to restore the default user name.
</p>
1159 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
1160 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
1162 <tr><td><tt>user
</tt></td><td>User name
</td></tr>
1163 </tbody></table></div>
1167 <h3 class='title'
><a name='cupsTempFd'
>cupsTempFd()
</a></h3>
1168 <h4>Description
</h4>
1169 <p>Create a temporary file.
1171 The temporary filename is stored in the filename buffer.
</p>
1180 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
1181 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
1183 <tr><td><tt>filename
</tt></td><td>Pointer to buffer
</td></tr>
1184 <tr><td><tt>len
</tt></td><td>Size of buffer
</td></tr>
1185 </tbody></table></div>
1187 <p>New file descriptor
</p>
1189 <h3 class='title'
><span class='info'
> DEPRECATED
</span><a name='cupsTempFile'
>cupsTempFile()
</a></h3>
1190 <h4>Description
</h4>
1191 <p>Generate a temporary filename.
1193 The temporary filename is stored in the filename buffer.
1194 This function is deprecated - use cupsTempFd() or cupsTempFile2()
1206 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
1207 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
1209 <tr><td><tt>filename
</tt></td><td>Pointer to buffer
</td></tr>
1210 <tr><td><tt>len
</tt></td><td>Size of buffer
</td></tr>
1211 </tbody></table></div>
1215 <h3 class='title'
><span class='info'
> CUPS
1.2 </span><a name='cupsTempFile2'
>cupsTempFile2()
</a></h3>
1216 <h4>Description
</h4>
1217 <p>Create a temporary CUPS file.
1219 The temporary filename is stored in the filename buffer.
1230 <div class='table'
><table align='center' border='
1' width='
80%' cellpadding='
5' cellspacing='
0'
>
1231 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
1233 <tr><td><tt>filename
</tt></td><td>Pointer to buffer
</td></tr>
1234 <tr><td><tt>len
</tt></td><td>Size of buffer
</td></tr>
1235 </tbody></table></div>
1237 <p>CUPS file or NULL on error
</p>
1239 <h3 class='title'
><a name='cupsUser'
>cupsUser()
</a></h3>
1240 <h4>Description
</h4>
1241 <p>Return the current user's name.
</p>
1252 <h2 class='title'
><a name='STRUCTURES'
>Structures
</a></h2>
1254 <li><a href='#cups_dest_s'
><tt>cups_dest_s
</tt></a> </li>
1255 <li><a href='#cups_job_s'
><tt>cups_job_s
</tt></a> </li>
1256 <li><a href='#cups_option_s'
><tt>cups_option_s
</tt></a> </li>
1259 <h3 class='title'
><a name='cups_dest_s'
>cups_dest_s
</a></h3>
1260 <h4>Description
</h4>
1266 char *name, * instance;
1269 <a href='#cups_option_t'
>cups_option_t
</a> * options;
1273 <div class='table'
><table align='center' border='
1' width='
80%'
>
1274 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
1276 <tr><td><tt>instance
</tt> </td><td>Local instance name or NULL
</td></tr>
1277 <tr><td><tt>is_default
</tt> </td><td>Is this printer the default?
</td></tr>
1278 <tr><td><tt>num_options
</tt> </td><td>Number of options
</td></tr>
1279 <tr><td><tt>options
</tt> </td><td>Options
</td></tr>
1280 </tbody></table></div>
1282 <h3 class='title'
><a name='cups_job_s'
>cups_job_s
</a></h3>
1283 <h4>Description
</h4>
1289 time_t completed_time;
1290 time_t creation_time;
1295 time_t processing_time;
1303 <div class='table'
><table align='center' border='
1' width='
80%'
>
1304 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
1306 <tr><td><tt>completed_time
</tt> </td><td>Time the job was completed
</td></tr>
1307 <tr><td><tt>creation_time
</tt> </td><td>Time the job was created
</td></tr>
1308 <tr><td><tt>dest
</tt> </td><td>Printer or class name
</td></tr>
1309 <tr><td><tt>format
</tt> </td><td>Document format
</td></tr>
1310 <tr><td><tt>id
</tt> </td><td>The job ID
</td></tr>
1311 <tr><td><tt>priority
</tt> </td><td>Priority (
1-
100)
</td></tr>
1312 <tr><td><tt>processing_time
</tt> </td><td>Time the job was processed
</td></tr>
1313 <tr><td><tt>size
</tt> </td><td>Size in kilobytes
</td></tr>
1314 <tr><td><tt>state
</tt> </td><td>Job state
</td></tr>
1315 <tr><td><tt>title
</tt> </td><td>Title/job name
</td></tr>
1316 <tr><td><tt>user
</tt> </td><td>User the submitted the job
</td></tr>
1317 </tbody></table></div>
1319 <h3 class='title'
><a name='cups_option_s'
>cups_option_s
</a></h3>
1320 <h4>Description
</h4>
1321 <p>Printer Options
</p>
1324 struct cups_option_s
1331 <div class='table'
><table align='center' border='
1' width='
80%'
>
1332 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
1334 <tr><td><tt>name
</tt> </td><td>Name of option
</td></tr>
1335 <tr><td><tt>value
</tt> </td><td>Value of option
</td></tr>
1336 </tbody></table></div>
1338 <h2 class='title'
><a name='TYPES'
>Types
</a></h2>
1340 <li><a href='#cups_dest_t'
><tt>cups_dest_t
</tt></a> </li>
1341 <li><a href='#cups_job_t'
><tt>cups_job_t
</tt></a> </li>
1342 <li><a href='#cups_option_t'
><tt>cups_option_t
</tt></a> </li>
1343 <li><a href='#cups_password_cb_t'
><tt>cups_password_cb_t
</tt></a> </li>
1344 <li><a href='#cups_ptype_t'
><tt>cups_ptype_t
</tt></a> </li>
1347 <h3 class='title'
><a name='cups_dest_t'
>cups_dest_t
</a></h3>
1348 <h4>Description
</h4>
1352 typedef struct
<a href='#cups_dest_s'
>cups_dest_s
</a> cups_dest_t;
1355 <h3 class='title'
><a name='cups_job_t'
>cups_job_t
</a></h3>
1356 <h4>Description
</h4>
1360 typedef struct
<a href='#cups_job_s'
>cups_job_s
</a> cups_job_t;
1363 <h3 class='title'
><a name='cups_option_t'
>cups_option_t
</a></h3>
1364 <h4>Description
</h4>
1365 <p>Printer Options
</p>
1368 typedef struct
<a href='#cups_option_s'
>cups_option_s
</a> cups_option_t;
1371 <h3 class='title'
><a name='cups_password_cb_t'
>cups_password_cb_t
</a></h3>
1372 <h4>Description
</h4>
1373 <p>Password callback
</p>
1376 typedef const char * (*cups_password_cb_t)(const char *);
1379 <h3 class='title'
><a name='cups_ptype_t'
>cups_ptype_t
</a></h3>
1380 <h4>Description
</h4>
1381 <p>Printer Type/Capability Bits
</p>
1384 typedef unsigned cups_ptype_t;