]>
Commit | Line | Data |
---|---|---|
ef416fc2 | 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> |
2 | <html> | |
3 | <!-- SECTION: Programming --> | |
4 | <head> | |
5 | <title>PPD 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; } | |
15 | --></style> | |
16 | </head> | |
17 | <body> | |
18 | <!-- | |
7a6a01dd | 19 | "$Id$" |
ef416fc2 | 20 | |
21 | PPD API introduction for the Common UNIX Printing System (CUPS). | |
22 | ||
b423cd4c | 23 | Copyright 1997-2006 by Easy Software Products. |
ef416fc2 | 24 | |
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 | |
30 | at: | |
31 | ||
32 | Attn: CUPS Licensing Information | |
33 | Easy Software Products | |
34 | 44141 Airport View Drive, Suite 204 | |
35 | Hollywood, Maryland 20636 USA | |
36 | ||
37 | Voice: (301) 373-9600 | |
38 | EMail: cups-info@cups.org | |
39 | WWW: http://www.cups.org | |
40 | --> | |
41 | ||
42 | <h2 class='title'>Introduction</h2> | |
43 | ||
b423cd4c | 44 | <p>The CUPS PPD API provides read-only access the data in |
45 | PostScript Printer Description ("PPD") files. With it you can | |
46 | display printer options to users, mark option choices and check | |
47 | for conflicting choices, and output marked choices in PostScript | |
48 | output.</p> | |
ef416fc2 | 49 | |
50 | <h2 class='title'>General Usage</h2> | |
51 | ||
52 | <p>The <var><cups/ppd.h></var> header file must be included | |
53 | to use the <tt>ppd</tt> functions.</p> | |
54 | ||
55 | <p>Programs using these functions must be linked to the CUPS | |
56 | library: <var>libcups.a</var>, <var>libcups.so.2</var>, | |
57 | <var>libcups.2.dylib</var>, <var>libcups_s.a</var>, or | |
58 | <var>libcups2.lib</var> depending on the platform. The following | |
59 | command compiles <var>myprogram.c</var> using GCC and the CUPS | |
60 | library:</p> | |
61 | ||
62 | <pre class='command'> | |
63 | <kbd>gcc -o myprogram myprogram.c -lcups</kbd> | |
64 | </pre> | |
65 | ||
66 | <h2 class='title'>Compatibility</h2> | |
67 | ||
68 | <p>Unless otherwise specified, the PPD API functions require CUPS | |
69 | 1.1 or higher.</p> | |
70 | <h2 class='title'>Contents</h2> | |
71 | <ul> | |
72 | <li><a href='#ENUMERATIONS'>Enumerations</a></li> | |
73 | <li><a href='#FUNCTIONS'>Functions</a></li> | |
74 | <li><a href='#STRUCTURES'>Structures</a></li> | |
75 | <li><a href='#TYPES'>Types</a></li> | |
76 | <li><a href='#UNIONS'>Unions</a></li> | |
77 | </ul> | |
78 | <!-- NEW PAGE --> | |
79 | <h2 class='title'><a name='ENUMERATIONS'>Enumerations</a></h2> | |
80 | <ul> | |
ecdc0628 | 81 | <li><a href='#ppd_cptype_e'><tt>ppd_cptype_e</tt></a> <span class='info'> CUPS 1.2 </span></li> |
ef416fc2 | 82 | <li><a href='#ppd_cs_e'><tt>ppd_cs_e</tt></a> </li> |
ef416fc2 | 83 | <li><a href='#ppd_section_e'><tt>ppd_section_e</tt></a> </li> |
84 | <li><a href='#ppd_status_e'><tt>ppd_status_e</tt></a> </li> | |
85 | <li><a href='#ppd_ui_e'><tt>ppd_ui_e</tt></a> </li> | |
86 | </ul> | |
87 | <!-- NEW PAGE --> | |
ecdc0628 | 88 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppd_cptype_e'>ppd_cptype_e</a></h3> |
89 | <h4>Description</h4> | |
90 | <p>Custom Parameter Type </p> | |
91 | <h4>Values</h4> | |
92 | <div class='table'><table align='center' border='1' width='80%'> | |
93 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
94 | <tbody> | |
95 | <tr><td><tt>PPD_CUSTOM_CURVE</tt> </td><td>Curve value for f(x) = x^value</td></tr> | |
96 | <tr><td><tt>PPD_CUSTOM_INT</tt> </td><td>Integer number value</td></tr> | |
97 | <tr><td><tt>PPD_CUSTOM_INVCURVE</tt> </td><td>Curve value for f(x) = x^(1/value)</td></tr> | |
98 | <tr><td><tt>PPD_CUSTOM_PASSCODE</tt> </td><td>String of (hidden) numbers</td></tr> | |
99 | <tr><td><tt>PPD_CUSTOM_PASSWORD</tt> </td><td>String of (hidden) characters</td></tr> | |
100 | <tr><td><tt>PPD_CUSTOM_POINTS</tt> </td><td>Measurement value in points</td></tr> | |
101 | <tr><td><tt>PPD_CUSTOM_REAL</tt> </td><td>Real number value</td></tr> | |
102 | <tr><td><tt>PPD_CUSTOM_STRING</tt> </td><td>String of characters</td></tr> | |
103 | </tbody></table></div> | |
104 | <!-- NEW PAGE --> | |
ef416fc2 | 105 | <h3 class='title'><a name='ppd_cs_e'>ppd_cs_e</a></h3> |
106 | <h4>Description</h4> | |
107 | <p>Colorspaces</p> | |
108 | <h4>Values</h4> | |
109 | <div class='table'><table align='center' border='1' width='80%'> | |
110 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
111 | <tbody> | |
112 | <tr><td><tt>PPD_CS_CMY</tt> </td><td>CMY colorspace</td></tr> | |
113 | <tr><td><tt>PPD_CS_CMYK</tt> </td><td>CMYK colorspace</td></tr> | |
114 | <tr><td><tt>PPD_CS_GRAY</tt> </td><td>Grayscale colorspace</td></tr> | |
115 | <tr><td><tt>PPD_CS_N</tt> </td><td>DeviceN colorspace</td></tr> | |
116 | <tr><td><tt>PPD_CS_RGB</tt> </td><td>RGB colorspace</td></tr> | |
117 | <tr><td><tt>PPD_CS_RGBK</tt> </td><td>RGBK (K = gray) colorspace</td></tr> | |
118 | </tbody></table></div> | |
119 | <!-- NEW PAGE --> | |
ef416fc2 | 120 | <h3 class='title'><a name='ppd_section_e'>ppd_section_e</a></h3> |
121 | <h4>Description</h4> | |
122 | <p>Order dependency sections</p> | |
123 | <h4>Values</h4> | |
124 | <div class='table'><table align='center' border='1' width='80%'> | |
125 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
126 | <tbody> | |
127 | <tr><td><tt>PPD_ORDER_ANY</tt> </td><td>Option code can be anywhere in the file</td></tr> | |
128 | <tr><td><tt>PPD_ORDER_DOCUMENT</tt> </td><td>... must be in the DocumentSetup section</td></tr> | |
129 | <tr><td><tt>PPD_ORDER_EXIT</tt> </td><td>... must be sent prior to the document</td></tr> | |
130 | <tr><td><tt>PPD_ORDER_JCL</tt> </td><td>... must be sent as a JCL command</td></tr> | |
131 | <tr><td><tt>PPD_ORDER_PAGE</tt> </td><td>... must be in the PageSetup section</td></tr> | |
132 | <tr><td><tt>PPD_ORDER_PROLOG</tt> </td><td>... must be in the Prolog section</td></tr> | |
133 | </tbody></table></div> | |
134 | <!-- NEW PAGE --> | |
135 | <h3 class='title'><a name='ppd_status_e'>ppd_status_e</a></h3> | |
136 | <h4>Description</h4> | |
137 | <p>Types and structures...</p> | |
138 | <h4>Values</h4> | |
139 | <div class='table'><table align='center' border='1' width='80%'> | |
140 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
141 | <tbody> | |
142 | <tr><td><tt>PPD_ALLOC_ERROR</tt> </td><td>Memory allocation error</td></tr> | |
ecdc0628 | 143 | <tr><td><tt>PPD_BAD_CUSTOM_PARAM</tt> </td><td>Bad custom parameter</td></tr> |
ef416fc2 | 144 | <tr><td><tt>PPD_BAD_OPEN_GROUP</tt> </td><td>Bad OpenGroup</td></tr> |
145 | <tr><td><tt>PPD_BAD_OPEN_UI</tt> </td><td>Bad OpenUI/JCLOpenUI</td></tr> | |
146 | <tr><td><tt>PPD_BAD_ORDER_DEPENDENCY</tt> </td><td>Bad OrderDependency</td></tr> | |
147 | <tr><td><tt>PPD_BAD_UI_CONSTRAINTS</tt> </td><td>Bad UIConstraints</td></tr> | |
148 | <tr><td><tt>PPD_FILE_OPEN_ERROR</tt> </td><td>Unable to open PPD file</td></tr> | |
149 | <tr><td><tt>PPD_ILLEGAL_CHARACTER</tt> </td><td>Illegal control character</td></tr> | |
150 | <tr><td><tt>PPD_ILLEGAL_MAIN_KEYWORD</tt> </td><td>Illegal main keyword string</td></tr> | |
151 | <tr><td><tt>PPD_ILLEGAL_OPTION_KEYWORD</tt> </td><td>Illegal option keyword string</td></tr> | |
152 | <tr><td><tt>PPD_ILLEGAL_TRANSLATION</tt> </td><td>Illegal translation string</td></tr> | |
153 | <tr><td><tt>PPD_ILLEGAL_WHITESPACE</tt> </td><td>Illegal whitespace character</td></tr> | |
154 | <tr><td><tt>PPD_INTERNAL_ERROR</tt> </td><td>Internal error</td></tr> | |
155 | <tr><td><tt>PPD_LINE_TOO_LONG</tt> </td><td>Line longer than 255 chars</td></tr> | |
156 | <tr><td><tt>PPD_MISSING_ASTERISK</tt> </td><td>Missing asterisk in column 0</td></tr> | |
157 | <tr><td><tt>PPD_MISSING_PPDADOBE4</tt> </td><td>Missing PPD-Adobe-4.x header</td></tr> | |
158 | <tr><td><tt>PPD_MISSING_VALUE</tt> </td><td>Missing value string</td></tr> | |
159 | <tr><td><tt>PPD_NESTED_OPEN_GROUP</tt> </td><td>OpenGroup without a CloseGroup first</td></tr> | |
160 | <tr><td><tt>PPD_NESTED_OPEN_UI</tt> </td><td>OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first</td></tr> | |
161 | <tr><td><tt>PPD_NULL_FILE</tt> </td><td>NULL PPD file pointer</td></tr> | |
162 | <tr><td><tt>PPD_OK</tt> </td><td>OK</td></tr> | |
163 | </tbody></table></div> | |
164 | <!-- NEW PAGE --> | |
165 | <h3 class='title'><a name='ppd_ui_e'>ppd_ui_e</a></h3> | |
166 | <h4>Description</h4> | |
167 | <p>UI Types</p> | |
168 | <h4>Values</h4> | |
169 | <div class='table'><table align='center' border='1' width='80%'> | |
170 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
171 | <tbody> | |
172 | <tr><td><tt>PPD_UI_BOOLEAN</tt> </td><td>True or False option</td></tr> | |
173 | <tr><td><tt>PPD_UI_PICKMANY</tt> </td><td>Pick zero or more from a list</td></tr> | |
174 | <tr><td><tt>PPD_UI_PICKONE</tt> </td><td>Pick one from a list</td></tr> | |
175 | </tbody></table></div> | |
176 | <!-- NEW PAGE --> | |
177 | <h2 class='title'><a name='FUNCTIONS'>Functions</a></h2> | |
178 | <ul> | |
179 | <li><a href='#ppdClose'><tt>ppdClose()</tt></a> </li> | |
180 | <li><a href='#ppdCollect'><tt>ppdCollect()</tt></a> </li> | |
ecdc0628 | 181 | <li><a href='#ppdCollect2'><tt>ppdCollect2()</tt></a> <span class='info'> CUPS 1.2 </span></li> |
ef416fc2 | 182 | <li><a href='#ppdConflicts'><tt>ppdConflicts()</tt></a> </li> |
183 | <li><a href='#ppdEmit'><tt>ppdEmit()</tt></a> </li> | |
ecdc0628 | 184 | <li><a href='#ppdEmitAfterOrder'><tt>ppdEmitAfterOrder()</tt></a> <span class='info'> CUPS 1.2 </span></li> |
ef416fc2 | 185 | <li><a href='#ppdEmitFd'><tt>ppdEmitFd()</tt></a> </li> |
186 | <li><a href='#ppdEmitJCL'><tt>ppdEmitJCL()</tt></a> </li> | |
187 | <li><a href='#ppdEmitJCLEnd'><tt>ppdEmitJCLEnd()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
80ca4592 | 188 | <li><a href='#ppdEmitString'><tt>ppdEmitString()</tt></a> <span class='info'> CUPS 1.2 </span></li> |
ef416fc2 | 189 | <li><a href='#ppdErrorString'><tt>ppdErrorString()</tt></a> <span class='info'> CUPS 1.1.19 </span></li> |
190 | <li><a href='#ppdFindAttr'><tt>ppdFindAttr()</tt></a> <span class='info'> CUPS 1.1.19 </span></li> | |
191 | <li><a href='#ppdFindChoice'><tt>ppdFindChoice()</tt></a> </li> | |
89d46774 | 192 | <li><a href='#ppdFindCustomOption'><tt>ppdFindCustomOption()</tt></a> <span class='info'> CUPS 1.2 </span></li> |
193 | <li><a href='#ppdFindCustomParam'><tt>ppdFindCustomParam()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
ef416fc2 | 194 | <li><a href='#ppdFindMarkedChoice'><tt>ppdFindMarkedChoice()</tt></a> </li> |
195 | <li><a href='#ppdFindNextAttr'><tt>ppdFindNextAttr()</tt></a> <span class='info'> CUPS 1.1.19 </span></li> | |
196 | <li><a href='#ppdFindOption'><tt>ppdFindOption()</tt></a> </li> | |
89d46774 | 197 | <li><a href='#ppdFirstCustomParam'><tt>ppdFirstCustomParam()</tt></a> <span class='info'> CUPS 1.2 </span></li> |
ecdc0628 | 198 | <li><a href='#ppdFirstOption'><tt>ppdFirstOption()</tt></a> <span class='info'> CUPS 1.2 </span></li> |
ef416fc2 | 199 | <li><a href='#ppdIsMarked'><tt>ppdIsMarked()</tt></a> </li> |
200 | <li><a href='#ppdLastError'><tt>ppdLastError()</tt></a> <span class='info'> CUPS 1.1.19 </span></li> | |
89d46774 | 201 | <li><a href='#ppdLocalize'><tt>ppdLocalize()</tt></a> <span class='info'> CUPS 1.2 </span></li> |
ef416fc2 | 202 | <li><a href='#ppdMarkDefaults'><tt>ppdMarkDefaults()</tt></a> </li> |
203 | <li><a href='#ppdMarkOption'><tt>ppdMarkOption()</tt></a> </li> | |
89d46774 | 204 | <li><a href='#ppdNextCustomParam'><tt>ppdNextCustomParam()</tt></a> <span class='info'> CUPS 1.2 </span></li> |
ecdc0628 | 205 | <li><a href='#ppdNextOption'><tt>ppdNextOption()</tt></a> <span class='info'> CUPS 1.2 </span></li> |
ef416fc2 | 206 | <li><a href='#ppdOpen'><tt>ppdOpen()</tt></a> </li> |
207 | <li><a href='#ppdOpen2'><tt>ppdOpen2()</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
208 | <li><a href='#ppdOpenFd'><tt>ppdOpenFd()</tt></a> </li> | |
209 | <li><a href='#ppdOpenFile'><tt>ppdOpenFile()</tt></a> </li> | |
210 | <li><a href='#ppdPageLength'><tt>ppdPageLength()</tt></a> </li> | |
211 | <li><a href='#ppdPageSize'><tt>ppdPageSize()</tt></a> </li> | |
212 | <li><a href='#ppdPageWidth'><tt>ppdPageWidth()</tt></a> </li> | |
213 | <li><a href='#ppdSetConformance'><tt>ppdSetConformance()</tt></a> <span class='info'> CUPS 1.1.20 </span></li> | |
214 | </ul> | |
215 | <!-- NEW PAGE --> | |
216 | <h3 class='title'><a name='ppdClose'>ppdClose()</a></h3> | |
217 | <h4>Description</h4> | |
218 | <p>Free all memory used by the PPD file.</p> | |
219 | <h4>Syntax</h4> | |
220 | <pre> | |
221 | void | |
222 | ppdClose( | |
223 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd); | |
224 | </pre> | |
225 | <h4>Arguments</h4> | |
226 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
227 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
228 | <tbody> | |
229 | <tr><td><tt>ppd</tt></td><td>PPD file record</td></tr> | |
230 | </tbody></table></div> | |
231 | <h4>Returns</h4> | |
232 | <p>Nothing.</p> | |
233 | <!-- NEW PAGE --> | |
234 | <h3 class='title'><a name='ppdCollect'>ppdCollect()</a></h3> | |
235 | <h4>Description</h4> | |
236 | <p>Collect all marked options that reside in the specified | |
237 | section.</p> | |
238 | <h4>Syntax</h4> | |
239 | <pre> | |
240 | int | |
241 | ppdCollect( | |
242 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
243 | <a href='#ppd_section_t'>ppd_section_t</a> section, | |
244 | <a href='#ppd_choice_t'>ppd_choice_t</a> *** choices); | |
245 | </pre> | |
246 | <h4>Arguments</h4> | |
247 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
248 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
249 | <tbody> | |
250 | <tr><td><tt>ppd</tt></td><td>PPD file data</td></tr> | |
251 | <tr><td><tt>section</tt></td><td>Section to collect</td></tr> | |
252 | <tr><td><tt>choices</tt></td><td>Pointers to choices</td></tr> | |
253 | </tbody></table></div> | |
254 | <h4>Returns</h4> | |
255 | <p>Number of options marked</p> | |
256 | <!-- NEW PAGE --> | |
ecdc0628 | 257 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppdCollect2'>ppdCollect2()</a></h3> |
258 | <h4>Description</h4> | |
259 | <p>Collect all marked options that reside in the | |
260 | specified section and minimum order. | |
261 | ||
262 | </p> | |
263 | <h4>Syntax</h4> | |
264 | <pre> | |
265 | int | |
266 | ppdCollect2( | |
267 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
268 | <a href='#ppd_section_t'>ppd_section_t</a> section, | |
269 | float min_order, | |
270 | <a href='#ppd_choice_t'>ppd_choice_t</a> *** choices); | |
271 | </pre> | |
272 | <h4>Arguments</h4> | |
273 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
274 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
275 | <tbody> | |
276 | <tr><td><tt>ppd</tt></td><td>PPD file data</td></tr> | |
277 | <tr><td><tt>section</tt></td><td>Section to collect</td></tr> | |
278 | <tr><td><tt>min_order</tt></td><td>Minimum OrderDependency value</td></tr> | |
279 | <tr><td><tt>choices</tt></td><td>Pointers to choices</td></tr> | |
280 | </tbody></table></div> | |
281 | <h4>Returns</h4> | |
282 | <p>Number of options marked</p> | |
283 | <!-- NEW PAGE --> | |
ef416fc2 | 284 | <h3 class='title'><a name='ppdConflicts'>ppdConflicts()</a></h3> |
285 | <h4>Description</h4> | |
286 | <p>Check to see if there are any conflicts.</p> | |
287 | <h4>Syntax</h4> | |
288 | <pre> | |
289 | int | |
290 | ppdConflicts( | |
291 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd); | |
292 | </pre> | |
293 | <h4>Arguments</h4> | |
294 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
295 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
296 | <tbody> | |
297 | <tr><td><tt>ppd</tt></td><td>PPD to check</td></tr> | |
298 | </tbody></table></div> | |
299 | <h4>Returns</h4> | |
300 | <p>Number of conflicts found</p> | |
301 | <!-- NEW PAGE --> | |
302 | <h3 class='title'><a name='ppdEmit'>ppdEmit()</a></h3> | |
303 | <h4>Description</h4> | |
304 | <p>Emit code for marked options to a file.</p> | |
305 | <h4>Syntax</h4> | |
306 | <pre> | |
307 | int | |
308 | ppdEmit( | |
309 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
310 | FILE * fp, | |
311 | <a href='#ppd_section_t'>ppd_section_t</a> section); | |
312 | </pre> | |
313 | <h4>Arguments</h4> | |
314 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
315 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
316 | <tbody> | |
317 | <tr><td><tt>ppd</tt></td><td>PPD file record</td></tr> | |
318 | <tr><td><tt>fp</tt></td><td>File to write to</td></tr> | |
319 | <tr><td><tt>section</tt></td><td>Section to write</td></tr> | |
320 | </tbody></table></div> | |
321 | <h4>Returns</h4> | |
322 | <p>0 on success, -1 on failure</p> | |
323 | <!-- NEW PAGE --> | |
ecdc0628 | 324 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppdEmitAfterOrder'>ppdEmitAfterOrder()</a></h3> |
325 | <h4>Description</h4> | |
326 | <p>Emit a subset of the code for marked options to a file. | |
327 | ||
328 | When "limit" is non-zero, this function only emits options whose | |
329 | OrderDependency value is greater than or equal to "min_order". | |
330 | ||
331 | When "limit" is zero, this function is identical to ppdEmit(). | |
332 | ||
333 | </p> | |
334 | <h4>Syntax</h4> | |
335 | <pre> | |
336 | int | |
337 | ppdEmitAfterOrder( | |
338 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
339 | FILE * fp, | |
340 | <a href='#ppd_section_t'>ppd_section_t</a> section, | |
341 | int limit, | |
342 | float min_order); | |
343 | </pre> | |
344 | <h4>Arguments</h4> | |
345 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
346 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
347 | <tbody> | |
348 | <tr><td><tt>ppd</tt></td><td>PPD file record</td></tr> | |
349 | <tr><td><tt>fp</tt></td><td>File to write to</td></tr> | |
350 | <tr><td><tt>section</tt></td><td>Section to write</td></tr> | |
80ca4592 | 351 | <tr><td><tt>limit</tt></td><td>Non-zero to use min_order</td></tr> |
352 | <tr><td><tt>min_order</tt></td><td>Lowest OrderDependency</td></tr> | |
ecdc0628 | 353 | </tbody></table></div> |
354 | <h4>Returns</h4> | |
355 | <p>0 on success, -1 on failure</p> | |
356 | <!-- NEW PAGE --> | |
ef416fc2 | 357 | <h3 class='title'><a name='ppdEmitFd'>ppdEmitFd()</a></h3> |
358 | <h4>Description</h4> | |
359 | <p>Emit code for marked options to a file.</p> | |
360 | <h4>Syntax</h4> | |
361 | <pre> | |
362 | int | |
363 | ppdEmitFd( | |
364 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
365 | int fd, | |
366 | <a href='#ppd_section_t'>ppd_section_t</a> section); | |
367 | </pre> | |
368 | <h4>Arguments</h4> | |
369 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
370 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
371 | <tbody> | |
372 | <tr><td><tt>ppd</tt></td><td>PPD file record</td></tr> | |
373 | <tr><td><tt>fd</tt></td><td>File to write to</td></tr> | |
374 | <tr><td><tt>section</tt></td><td>Section to write</td></tr> | |
375 | </tbody></table></div> | |
376 | <h4>Returns</h4> | |
377 | <p>0 on success, -1 on failure</p> | |
378 | <!-- NEW PAGE --> | |
379 | <h3 class='title'><a name='ppdEmitJCL'>ppdEmitJCL()</a></h3> | |
380 | <h4>Description</h4> | |
381 | <p>Emit code for JCL options to a file.</p> | |
382 | <h4>Syntax</h4> | |
383 | <pre> | |
384 | int | |
385 | ppdEmitJCL( | |
386 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
387 | FILE * fp, | |
388 | int job_id, | |
389 | const char * user, | |
390 | const char * title); | |
391 | </pre> | |
392 | <h4>Arguments</h4> | |
393 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
394 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
395 | <tbody> | |
396 | <tr><td><tt>ppd</tt></td><td>PPD file record</td></tr> | |
397 | <tr><td><tt>fp</tt></td><td>File to write to</td></tr> | |
398 | <tr><td><tt>job_id</tt></td><td>Job ID</td></tr> | |
399 | <tr><td><tt>user</tt></td><td>Username</td></tr> | |
400 | <tr><td><tt>title</tt></td><td>Title</td></tr> | |
401 | </tbody></table></div> | |
402 | <h4>Returns</h4> | |
403 | <p>0 on success, -1 on failure</p> | |
404 | <!-- NEW PAGE --> | |
405 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppdEmitJCLEnd'>ppdEmitJCLEnd()</a></h3> | |
406 | <h4>Description</h4> | |
407 | <p>Emit JCLEnd code to a file. | |
408 | ||
409 | </p> | |
410 | <h4>Syntax</h4> | |
411 | <pre> | |
412 | int | |
413 | ppdEmitJCLEnd( | |
414 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
415 | FILE * fp); | |
416 | </pre> | |
417 | <h4>Arguments</h4> | |
418 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
419 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
420 | <tbody> | |
421 | <tr><td><tt>ppd</tt></td><td>PPD file record</td></tr> | |
422 | <tr><td><tt>fp</tt></td><td>File to write to</td></tr> | |
423 | </tbody></table></div> | |
424 | <h4>Returns</h4> | |
425 | <p>0 on success, -1 on failure</p> | |
426 | <!-- NEW PAGE --> | |
80ca4592 | 427 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppdEmitString'>ppdEmitString()</a></h3> |
428 | <h4>Description</h4> | |
429 | <p>Get a string containing the code for marked options. | |
430 | ||
431 | When "min_order" is greater than zero, this function only includes options | |
432 | whose OrderDependency value is greater than or equal to "min_order". | |
433 | Otherwise, all options in the specified section are included in the | |
434 | returned string. | |
435 | ||
436 | The return string is allocated on the heap and should be freed using | |
437 | free() when you are done with it. | |
438 | ||
439 | </p> | |
440 | <h4>Syntax</h4> | |
441 | <pre> | |
442 | char * | |
443 | ppdEmitString( | |
444 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
445 | <a href='#ppd_section_t'>ppd_section_t</a> section, | |
446 | float min_order); | |
447 | </pre> | |
448 | <h4>Arguments</h4> | |
449 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
450 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
451 | <tbody> | |
452 | <tr><td><tt>ppd</tt></td><td>PPD file record</td></tr> | |
453 | <tr><td><tt>section</tt></td><td>Section to write</td></tr> | |
454 | <tr><td><tt>min_order</tt></td><td>Lowest OrderDependency</td></tr> | |
455 | </tbody></table></div> | |
456 | <h4>Returns</h4> | |
457 | <p>String containing option code</p> | |
458 | <!-- NEW PAGE --> | |
ef416fc2 | 459 | <h3 class='title'><span class='info'> CUPS 1.1.19 </span><a name='ppdErrorString'>ppdErrorString()</a></h3> |
460 | <h4>Description</h4> | |
461 | <p>Returns the text assocated with a status. | |
462 | ||
463 | </p> | |
464 | <h4>Syntax</h4> | |
465 | <pre> | |
466 | const char * | |
467 | ppdErrorString( | |
468 | ppd_status_t status); | |
469 | </pre> | |
470 | <h4>Arguments</h4> | |
471 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
472 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
473 | <tbody> | |
474 | <tr><td><tt>status</tt></td><td>PPD status</td></tr> | |
475 | </tbody></table></div> | |
476 | <h4>Returns</h4> | |
477 | <p>Status string</p> | |
478 | <!-- NEW PAGE --> | |
479 | <h3 class='title'><span class='info'> CUPS 1.1.19 </span><a name='ppdFindAttr'>ppdFindAttr()</a></h3> | |
480 | <h4>Description</h4> | |
481 | <p>Find the first matching attribute... | |
482 | ||
483 | </p> | |
484 | <h4>Syntax</h4> | |
485 | <pre> | |
486 | <a href='#ppd_attr_t'>ppd_attr_t</a> * | |
487 | ppdFindAttr( | |
488 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
489 | const char * name, | |
490 | const char * spec); | |
491 | </pre> | |
492 | <h4>Arguments</h4> | |
493 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
494 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
495 | <tbody> | |
496 | <tr><td><tt>ppd</tt></td><td>PPD file data</td></tr> | |
497 | <tr><td><tt>name</tt></td><td>Attribute name</td></tr> | |
498 | <tr><td><tt>spec</tt></td><td>Specifier string or NULL</td></tr> | |
499 | </tbody></table></div> | |
500 | <h4>Returns</h4> | |
501 | <p>Attribute or NULL if not found</p> | |
502 | <!-- NEW PAGE --> | |
503 | <h3 class='title'><a name='ppdFindChoice'>ppdFindChoice()</a></h3> | |
504 | <h4>Description</h4> | |
505 | <p>Return a pointer to an option choice.</p> | |
506 | <h4>Syntax</h4> | |
507 | <pre> | |
508 | <a href='#ppd_choice_t'>ppd_choice_t</a> * | |
509 | ppdFindChoice( | |
510 | <a href='#ppd_option_t'>ppd_option_t</a> * o, | |
511 | const char * choice); | |
512 | </pre> | |
513 | <h4>Arguments</h4> | |
514 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
515 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
516 | <tbody> | |
517 | <tr><td><tt>o</tt></td><td>Pointer to option</td></tr> | |
518 | <tr><td><tt>choice</tt></td><td>Name of choice</td></tr> | |
519 | </tbody></table></div> | |
520 | <h4>Returns</h4> | |
521 | <p>Choice pointer or NULL</p> | |
522 | <!-- NEW PAGE --> | |
89d46774 | 523 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppdFindCustomOption'>ppdFindCustomOption()</a></h3> |
524 | <h4>Description</h4> | |
525 | <p>Find a custom option. | |
526 | ||
527 | </p> | |
528 | <h4>Syntax</h4> | |
529 | <pre> | |
530 | <a href='#ppd_coption_t'>ppd_coption_t</a> * | |
531 | ppdFindCustomOption( | |
532 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
533 | const char * keyword); | |
534 | </pre> | |
535 | <h4>Arguments</h4> | |
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> | |
538 | <tbody> | |
539 | <tr><td><tt>ppd</tt></td><td>PPD file</td></tr> | |
540 | <tr><td><tt>keyword</tt></td><td>Custom option name</td></tr> | |
541 | </tbody></table></div> | |
542 | <h4>Returns</h4> | |
543 | <p>Custom option or NULL</p> | |
544 | <!-- NEW PAGE --> | |
545 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppdFindCustomParam'>ppdFindCustomParam()</a></h3> | |
546 | <h4>Description</h4> | |
547 | <p>Find a parameter for a custom option. | |
548 | ||
549 | </p> | |
550 | <h4>Syntax</h4> | |
551 | <pre> | |
552 | <a href='#ppd_cparam_t'>ppd_cparam_t</a> * | |
553 | ppdFindCustomParam( | |
554 | <a href='#ppd_coption_t'>ppd_coption_t</a> * opt, | |
555 | const char * name); | |
556 | </pre> | |
557 | <h4>Arguments</h4> | |
558 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
559 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
560 | <tbody> | |
561 | <tr><td><tt>opt</tt></td><td>Custom option</td></tr> | |
562 | <tr><td><tt>name</tt></td><td>Parameter name</td></tr> | |
563 | </tbody></table></div> | |
564 | <h4>Returns</h4> | |
565 | <p>Custom parameter or NULL</p> | |
566 | <!-- NEW PAGE --> | |
ef416fc2 | 567 | <h3 class='title'><a name='ppdFindMarkedChoice'>ppdFindMarkedChoice()</a></h3> |
568 | <h4>Description</h4> | |
569 | <p>Return the marked choice for the specified option.</p> | |
570 | <h4>Syntax</h4> | |
571 | <pre> | |
572 | <a href='#ppd_choice_t'>ppd_choice_t</a> * | |
573 | ppdFindMarkedChoice( | |
574 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
575 | const char * option); | |
576 | </pre> | |
577 | <h4>Arguments</h4> | |
578 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
579 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
580 | <tbody> | |
581 | <tr><td><tt>ppd</tt></td><td>PPD file</td></tr> | |
582 | <tr><td><tt>option</tt></td><td>Keyword/option name</td></tr> | |
583 | </tbody></table></div> | |
584 | <h4>Returns</h4> | |
585 | <p>Pointer to choice or NULL</p> | |
586 | <!-- NEW PAGE --> | |
587 | <h3 class='title'><span class='info'> CUPS 1.1.19 </span><a name='ppdFindNextAttr'>ppdFindNextAttr()</a></h3> | |
588 | <h4>Description</h4> | |
589 | <p>Find the next matching attribute... | |
590 | ||
591 | </p> | |
592 | <h4>Syntax</h4> | |
593 | <pre> | |
594 | <a href='#ppd_attr_t'>ppd_attr_t</a> * | |
595 | ppdFindNextAttr( | |
596 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
597 | const char * name, | |
598 | const char * spec); | |
599 | </pre> | |
600 | <h4>Arguments</h4> | |
601 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
602 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
603 | <tbody> | |
604 | <tr><td><tt>ppd</tt></td><td>PPD file data</td></tr> | |
605 | <tr><td><tt>name</tt></td><td>Attribute name</td></tr> | |
606 | <tr><td><tt>spec</tt></td><td>Specifier string or NULL</td></tr> | |
607 | </tbody></table></div> | |
608 | <h4>Returns</h4> | |
609 | <p>Attribute or NULL if not found</p> | |
610 | <!-- NEW PAGE --> | |
611 | <h3 class='title'><a name='ppdFindOption'>ppdFindOption()</a></h3> | |
612 | <h4>Description</h4> | |
613 | <p>Return a pointer to the specified option.</p> | |
614 | <h4>Syntax</h4> | |
615 | <pre> | |
616 | <a href='#ppd_option_t'>ppd_option_t</a> * | |
617 | ppdFindOption( | |
618 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
619 | const char * option); | |
620 | </pre> | |
621 | <h4>Arguments</h4> | |
622 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
623 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
624 | <tbody> | |
625 | <tr><td><tt>ppd</tt></td><td>PPD file data</td></tr> | |
626 | <tr><td><tt>option</tt></td><td>Option/Keyword name</td></tr> | |
627 | </tbody></table></div> | |
628 | <h4>Returns</h4> | |
629 | <p>Pointer to option or NULL</p> | |
630 | <!-- NEW PAGE --> | |
89d46774 | 631 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppdFirstCustomParam'>ppdFirstCustomParam()</a></h3> |
632 | <h4>Description</h4> | |
633 | <p>Return the first parameter for a custom option. | |
634 | ||
635 | </p> | |
636 | <h4>Syntax</h4> | |
637 | <pre> | |
638 | <a href='#ppd_cparam_t'>ppd_cparam_t</a> * | |
639 | ppdFirstCustomParam( | |
640 | <a href='#ppd_coption_t'>ppd_coption_t</a> * opt); | |
641 | </pre> | |
642 | <h4>Arguments</h4> | |
643 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
644 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
645 | <tbody> | |
646 | <tr><td><tt>opt</tt></td><td>Custom option</td></tr> | |
647 | </tbody></table></div> | |
648 | <h4>Returns</h4> | |
649 | <p>Custom parameter or NULL</p> | |
650 | <!-- NEW PAGE --> | |
ecdc0628 | 651 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppdFirstOption'>ppdFirstOption()</a></h3> |
652 | <h4>Description</h4> | |
653 | <p>Return the first option in the PPD file. | |
654 | ||
655 | Options are returned from all groups in sorted order. | |
656 | ||
657 | </p> | |
658 | <h4>Syntax</h4> | |
659 | <pre> | |
660 | <a href='#ppd_option_t'>ppd_option_t</a> * | |
661 | ppdFirstOption( | |
662 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd); | |
663 | </pre> | |
664 | <h4>Arguments</h4> | |
665 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
666 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
667 | <tbody> | |
668 | <tr><td><tt>ppd</tt></td><td>PPD file</td></tr> | |
669 | </tbody></table></div> | |
670 | <h4>Returns</h4> | |
671 | <p>First option or NULL</p> | |
672 | <!-- NEW PAGE --> | |
ef416fc2 | 673 | <h3 class='title'><a name='ppdIsMarked'>ppdIsMarked()</a></h3> |
674 | <h4>Description</h4> | |
675 | <p>Check to see if an option is marked...</p> | |
676 | <h4>Syntax</h4> | |
677 | <pre> | |
678 | int | |
679 | ppdIsMarked( | |
680 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
681 | const char * option, | |
682 | const char * choice); | |
683 | </pre> | |
684 | <h4>Arguments</h4> | |
685 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
686 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
687 | <tbody> | |
688 | <tr><td><tt>ppd</tt></td><td>PPD file data</td></tr> | |
689 | <tr><td><tt>option</tt></td><td>Option/Keyword name</td></tr> | |
690 | <tr><td><tt>choice</tt></td><td>Choice name</td></tr> | |
691 | </tbody></table></div> | |
692 | <h4>Returns</h4> | |
693 | <p>Non-zero if option is marked</p> | |
694 | <!-- NEW PAGE --> | |
695 | <h3 class='title'><span class='info'> CUPS 1.1.19 </span><a name='ppdLastError'>ppdLastError()</a></h3> | |
696 | <h4>Description</h4> | |
697 | <p>Return the status from the last ppdOpen*(). | |
698 | ||
699 | </p> | |
700 | <h4>Syntax</h4> | |
701 | <pre> | |
702 | ppd_status_t | |
703 | ppdLastError( | |
704 | int * line); | |
705 | </pre> | |
706 | <h4>Arguments</h4> | |
707 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
708 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
709 | <tbody> | |
710 | <tr><td><tt>line</tt></td><td>Line number</td></tr> | |
711 | </tbody></table></div> | |
712 | <h4>Returns</h4> | |
713 | <p>Status code</p> | |
714 | <!-- NEW PAGE --> | |
89d46774 | 715 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppdLocalize'>ppdLocalize()</a></h3> |
716 | <h4>Description</h4> | |
717 | <p>Localize the PPD file to the current locale. | |
718 | ||
719 | </p> | |
720 | <h4>Syntax</h4> | |
721 | <pre> | |
722 | int | |
723 | ppdLocalize( | |
724 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd); | |
725 | </pre> | |
726 | <h4>Arguments</h4> | |
727 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
728 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
729 | <tbody> | |
730 | <tr><td><tt>ppd</tt></td><td>PPD file</td></tr> | |
731 | </tbody></table></div> | |
732 | <h4>Returns</h4> | |
733 | <p>0 on success, -1 on error</p> | |
734 | <!-- NEW PAGE --> | |
ef416fc2 | 735 | <h3 class='title'><a name='ppdMarkDefaults'>ppdMarkDefaults()</a></h3> |
736 | <h4>Description</h4> | |
737 | <p>Mark all default options in the PPD file.</p> | |
738 | <h4>Syntax</h4> | |
739 | <pre> | |
740 | void | |
741 | ppdMarkDefaults( | |
742 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd); | |
743 | </pre> | |
744 | <h4>Arguments</h4> | |
745 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
746 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
747 | <tbody> | |
748 | <tr><td><tt>ppd</tt></td><td>PPD file record</td></tr> | |
749 | </tbody></table></div> | |
750 | <h4>Returns</h4> | |
751 | <p>Nothing.</p> | |
752 | <!-- NEW PAGE --> | |
753 | <h3 class='title'><a name='ppdMarkOption'>ppdMarkOption()</a></h3> | |
754 | <h4>Description</h4> | |
755 | <p>Mark an option in a PPD file. | |
756 | ||
757 | Notes: | |
758 | ||
759 | -1 is returned if the given option would conflict with any currently | |
760 | selected option.</p> | |
761 | <h4>Syntax</h4> | |
762 | <pre> | |
763 | int | |
764 | ppdMarkOption( | |
765 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
766 | const char * option, | |
767 | const char * choice); | |
768 | </pre> | |
769 | <h4>Arguments</h4> | |
770 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
771 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
772 | <tbody> | |
773 | <tr><td><tt>ppd</tt></td><td>PPD file record</td></tr> | |
774 | <tr><td><tt>option</tt></td><td>Keyword</td></tr> | |
775 | <tr><td><tt>choice</tt></td><td>Option name</td></tr> | |
776 | </tbody></table></div> | |
777 | <h4>Returns</h4> | |
778 | <p>Number of conflicts</p> | |
779 | <!-- NEW PAGE --> | |
89d46774 | 780 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppdNextCustomParam'>ppdNextCustomParam()</a></h3> |
781 | <h4>Description</h4> | |
782 | <p>Return the next parameter for a custom option. | |
783 | ||
784 | </p> | |
785 | <h4>Syntax</h4> | |
786 | <pre> | |
787 | <a href='#ppd_cparam_t'>ppd_cparam_t</a> * | |
788 | ppdNextCustomParam( | |
789 | <a href='#ppd_coption_t'>ppd_coption_t</a> * opt); | |
790 | </pre> | |
791 | <h4>Arguments</h4> | |
792 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
793 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
794 | <tbody> | |
795 | <tr><td><tt>opt</tt></td><td>Custom option</td></tr> | |
796 | </tbody></table></div> | |
797 | <h4>Returns</h4> | |
798 | <p>Custom parameter or NULL</p> | |
799 | <!-- NEW PAGE --> | |
ecdc0628 | 800 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppdNextOption'>ppdNextOption()</a></h3> |
801 | <h4>Description</h4> | |
802 | <p>Return the next option in the PPD file. | |
803 | ||
804 | Options are returned from all groups in sorted order. | |
805 | ||
806 | </p> | |
807 | <h4>Syntax</h4> | |
808 | <pre> | |
809 | <a href='#ppd_option_t'>ppd_option_t</a> * | |
810 | ppdNextOption( | |
811 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd); | |
812 | </pre> | |
813 | <h4>Arguments</h4> | |
814 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
815 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
816 | <tbody> | |
817 | <tr><td><tt>ppd</tt></td><td>PPD file</td></tr> | |
818 | </tbody></table></div> | |
819 | <h4>Returns</h4> | |
820 | <p>Next option or NULL</p> | |
821 | <!-- NEW PAGE --> | |
ef416fc2 | 822 | <h3 class='title'><a name='ppdOpen'>ppdOpen()</a></h3> |
823 | <h4>Description</h4> | |
824 | <p>Read a PPD file into memory.</p> | |
825 | <h4>Syntax</h4> | |
826 | <pre> | |
827 | <a href='#ppd_file_t'>ppd_file_t</a> * | |
828 | ppdOpen( | |
829 | FILE * fp); | |
830 | </pre> | |
831 | <h4>Arguments</h4> | |
832 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
833 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
834 | <tbody> | |
835 | <tr><td><tt>fp</tt></td><td>File to read from</td></tr> | |
836 | </tbody></table></div> | |
837 | <h4>Returns</h4> | |
838 | <p>PPD file record</p> | |
839 | <!-- NEW PAGE --> | |
840 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppdOpen2'>ppdOpen2()</a></h3> | |
841 | <h4>Description</h4> | |
842 | <p>Read a PPD file into memory. | |
843 | ||
844 | </p> | |
845 | <h4>Syntax</h4> | |
846 | <pre> | |
847 | <a href='#ppd_file_t'>ppd_file_t</a> * | |
848 | ppdOpen2( | |
849 | cups_file_t * fp); | |
850 | </pre> | |
851 | <h4>Arguments</h4> | |
852 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
853 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
854 | <tbody> | |
855 | <tr><td><tt>fp</tt></td><td>File to read from</td></tr> | |
856 | </tbody></table></div> | |
857 | <h4>Returns</h4> | |
858 | <p>PPD file record</p> | |
859 | <!-- NEW PAGE --> | |
860 | <h3 class='title'><a name='ppdOpenFd'>ppdOpenFd()</a></h3> | |
861 | <h4>Description</h4> | |
862 | <p>Read a PPD file into memory.</p> | |
863 | <h4>Syntax</h4> | |
864 | <pre> | |
865 | <a href='#ppd_file_t'>ppd_file_t</a> * | |
866 | ppdOpenFd( | |
867 | int fd); | |
868 | </pre> | |
869 | <h4>Arguments</h4> | |
870 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
871 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
872 | <tbody> | |
873 | <tr><td><tt>fd</tt></td><td>File to read from</td></tr> | |
874 | </tbody></table></div> | |
875 | <h4>Returns</h4> | |
876 | <p>PPD file record</p> | |
877 | <!-- NEW PAGE --> | |
878 | <h3 class='title'><a name='ppdOpenFile'>ppdOpenFile()</a></h3> | |
879 | <h4>Description</h4> | |
880 | <p>Read a PPD file into memory.</p> | |
881 | <h4>Syntax</h4> | |
882 | <pre> | |
883 | <a href='#ppd_file_t'>ppd_file_t</a> * | |
884 | ppdOpenFile( | |
885 | const char * filename); | |
886 | </pre> | |
887 | <h4>Arguments</h4> | |
888 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
889 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
890 | <tbody> | |
891 | <tr><td><tt>filename</tt></td><td>File to read from</td></tr> | |
892 | </tbody></table></div> | |
893 | <h4>Returns</h4> | |
894 | <p>PPD file record</p> | |
895 | <!-- NEW PAGE --> | |
896 | <h3 class='title'><a name='ppdPageLength'>ppdPageLength()</a></h3> | |
897 | <h4>Description</h4> | |
898 | <p>Get the page length for the given size.</p> | |
899 | <h4>Syntax</h4> | |
900 | <pre> | |
901 | float | |
902 | ppdPageLength( | |
903 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
904 | const char * name); | |
905 | </pre> | |
906 | <h4>Arguments</h4> | |
907 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
908 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
909 | <tbody> | |
910 | <tr><td><tt>ppd</tt></td><td>PPD file</td></tr> | |
911 | <tr><td><tt>name</tt></td><td>Size name</td></tr> | |
912 | </tbody></table></div> | |
913 | <h4>Returns</h4> | |
914 | <p>Length of page in points or 0.0</p> | |
915 | <!-- NEW PAGE --> | |
916 | <h3 class='title'><a name='ppdPageSize'>ppdPageSize()</a></h3> | |
917 | <h4>Description</h4> | |
918 | <p>Get the page size record for the given size.</p> | |
919 | <h4>Syntax</h4> | |
920 | <pre> | |
921 | <a href='#ppd_size_t'>ppd_size_t</a> * | |
922 | ppdPageSize( | |
923 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
924 | const char * name); | |
925 | </pre> | |
926 | <h4>Arguments</h4> | |
927 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
928 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
929 | <tbody> | |
930 | <tr><td><tt>ppd</tt></td><td>PPD file record</td></tr> | |
931 | <tr><td><tt>name</tt></td><td>Size name</td></tr> | |
932 | </tbody></table></div> | |
933 | <h4>Returns</h4> | |
934 | <p>Size record for page or NULL</p> | |
935 | <!-- NEW PAGE --> | |
936 | <h3 class='title'><a name='ppdPageWidth'>ppdPageWidth()</a></h3> | |
937 | <h4>Description</h4> | |
938 | <p>Get the page width for the given size.</p> | |
939 | <h4>Syntax</h4> | |
940 | <pre> | |
941 | float | |
942 | ppdPageWidth( | |
943 | <a href='#ppd_file_t'>ppd_file_t</a> * ppd, | |
944 | const char * name); | |
945 | </pre> | |
946 | <h4>Arguments</h4> | |
947 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
948 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
949 | <tbody> | |
950 | <tr><td><tt>ppd</tt></td><td>PPD file record</td></tr> | |
951 | <tr><td><tt>name</tt></td><td>Size name</td></tr> | |
952 | </tbody></table></div> | |
953 | <h4>Returns</h4> | |
954 | <p>Width of page in points or 0.0</p> | |
955 | <!-- NEW PAGE --> | |
956 | <h3 class='title'><span class='info'> CUPS 1.1.20 </span><a name='ppdSetConformance'>ppdSetConformance()</a></h3> | |
957 | <h4>Description</h4> | |
958 | <p>Set the conformance level for PPD files. | |
959 | ||
960 | </p> | |
961 | <h4>Syntax</h4> | |
962 | <pre> | |
963 | void | |
964 | ppdSetConformance( | |
965 | <a href='#ppd_conform_t'>ppd_conform_t</a> c); | |
966 | </pre> | |
967 | <h4>Arguments</h4> | |
968 | <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'> | |
969 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
970 | <tbody> | |
971 | <tr><td><tt>c</tt></td><td>Conformance level</td></tr> | |
972 | </tbody></table></div> | |
973 | <h4>Returns</h4> | |
974 | <p>Nothing.</p> | |
975 | <!-- NEW PAGE --> | |
976 | <h2 class='title'><a name='STRUCTURES'>Structures</a></h2> | |
977 | <ul> | |
ecdc0628 | 978 | <li><a href='#ppd_attr_s'><tt>ppd_attr_s</tt></a> <span class='info'> CUPS 1.1.19 </span></li> |
979 | <li><a href='#ppd_choice_s'><tt>ppd_choice_s</tt></a> </li> | |
980 | <li><a href='#ppd_coption_s'><tt>ppd_coption_s</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
981 | <li><a href='#ppd_cparam_s'><tt>ppd_cparam_s</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
982 | <li><a href='#ppd_emul_s'><tt>ppd_emul_s</tt></a> </li> | |
983 | <li><a href='#ppd_file_s'><tt>ppd_file_s</tt></a> </li> | |
984 | <li><a href='#ppd_group_s'><tt>ppd_group_s</tt></a> </li> | |
985 | <li><a href='#ppd_option_s'><tt>ppd_option_s</tt></a> </li> | |
986 | <li><a href='#ppd_profile_s'><tt>ppd_profile_s</tt></a> </li> | |
987 | <li><a href='#ppd_size_s'><tt>ppd_size_s</tt></a> </li> | |
ef416fc2 | 988 | </ul> |
989 | <!-- NEW PAGE --> | |
ecdc0628 | 990 | <h3 class='title'><span class='info'> CUPS 1.1.19 </span><a name='ppd_attr_s'>ppd_attr_s</a></h3> |
ef416fc2 | 991 | <h4>Description</h4> |
992 | <p>PPD Attribute Structure </p> | |
993 | <h4>Definition</h4> | |
994 | <pre> | |
ecdc0628 | 995 | struct ppd_attr_s |
ef416fc2 | 996 | { |
997 | char name[PPD_MAX_NAME]; | |
998 | char spec[PPD_MAX_NAME]; | |
999 | char text[PPD_MAX_TEXT]; | |
1000 | char * value; | |
1001 | }; | |
1002 | </pre> | |
1003 | <h4>Members</h4> | |
1004 | <div class='table'><table align='center' border='1' width='80%'> | |
1005 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1006 | <tbody> | |
1007 | <tr><td><tt>name[PPD_MAX_NAME]</tt> </td><td>Name of attribute (cupsXYZ)</td></tr> | |
1008 | <tr><td><tt>spec[PPD_MAX_NAME]</tt> </td><td>Specifier string, if any</td></tr> | |
1009 | <tr><td><tt>text[PPD_MAX_TEXT]</tt> </td><td>Human-readable text, if any</td></tr> | |
1010 | <tr><td><tt>value</tt> </td><td>Value string</td></tr> | |
1011 | </tbody></table></div> | |
1012 | <!-- NEW PAGE --> | |
ecdc0628 | 1013 | <h3 class='title'><a name='ppd_choice_s'>ppd_choice_s</a></h3> |
ef416fc2 | 1014 | <h4>Description</h4> |
1015 | <p>Option choices</p> | |
1016 | <h4>Definition</h4> | |
1017 | <pre> | |
ecdc0628 | 1018 | struct ppd_choice_s |
ef416fc2 | 1019 | { |
1020 | char choice[PPD_MAX_NAME]; | |
1021 | char * code; | |
1022 | char marked; | |
1023 | <a href='#ppd_option_t'>ppd_option_t</a> * option; | |
1024 | char text[PPD_MAX_TEXT]; | |
1025 | }; | |
1026 | </pre> | |
1027 | <h4>Members</h4> | |
1028 | <div class='table'><table align='center' border='1' width='80%'> | |
1029 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1030 | <tbody> | |
1031 | <tr><td><tt>choice[PPD_MAX_NAME]</tt> </td><td>Computer-readable option name</td></tr> | |
1032 | <tr><td><tt>code</tt> </td><td>Code to send for this option</td></tr> | |
1033 | <tr><td><tt>marked</tt> </td><td>0 if not selected, 1 otherwise</td></tr> | |
1034 | <tr><td><tt>option</tt> </td><td>Pointer to parent option structure</td></tr> | |
1035 | <tr><td><tt>text[PPD_MAX_TEXT]</tt> </td><td>Human-readable option name</td></tr> | |
1036 | </tbody></table></div> | |
1037 | <!-- NEW PAGE --> | |
ecdc0628 | 1038 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppd_coption_s'>ppd_coption_s</a></h3> |
ef416fc2 | 1039 | <h4>Description</h4> |
ecdc0628 | 1040 | <p>Custom Option </p> |
ef416fc2 | 1041 | <h4>Definition</h4> |
1042 | <pre> | |
ecdc0628 | 1043 | struct ppd_coption_s |
ef416fc2 | 1044 | { |
ecdc0628 | 1045 | char keyword[PPD_MAX_NAME]; |
1046 | int marked; | |
1047 | <a href='#ppd_option_t'>ppd_option_t</a> * option; | |
1048 | cups_array_t * params; | |
ef416fc2 | 1049 | }; |
1050 | </pre> | |
1051 | <h4>Members</h4> | |
1052 | <div class='table'><table align='center' border='1' width='80%'> | |
1053 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1054 | <tbody> | |
ecdc0628 | 1055 | <tr><td><tt>keyword[PPD_MAX_NAME]</tt> </td><td>Name of option that is being extended...</td></tr> |
1056 | <tr><td><tt>marked</tt> </td><td>Extended option is marked</td></tr> | |
1057 | <tr><td><tt>option</tt> </td><td>Option that is being extended...</td></tr> | |
1058 | <tr><td><tt>params</tt> </td><td>Parameters</td></tr> | |
ef416fc2 | 1059 | </tbody></table></div> |
1060 | <!-- NEW PAGE --> | |
ecdc0628 | 1061 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppd_cparam_s'>ppd_cparam_s</a></h3> |
ef416fc2 | 1062 | <h4>Description</h4> |
ecdc0628 | 1063 | <p>Custom Parameter </p> |
ef416fc2 | 1064 | <h4>Definition</h4> |
1065 | <pre> | |
ecdc0628 | 1066 | struct ppd_cparam_s |
ef416fc2 | 1067 | { |
80ca4592 | 1068 | <a href='#ppd_cpvalue_t'>ppd_cpvalue_t</a> current; |
1069 | <a href='#ppd_cplimit_t'>ppd_cplimit_t</a> minimum, maximum; | |
ecdc0628 | 1070 | char name[PPD_MAX_NAME]; |
1071 | int order; | |
1072 | char text[PPD_MAX_TEXT]; | |
1073 | <a href='#ppd_cptype_t'>ppd_cptype_t</a> type; | |
ef416fc2 | 1074 | }; |
1075 | </pre> | |
1076 | <h4>Members</h4> | |
1077 | <div class='table'><table align='center' border='1' width='80%'> | |
1078 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1079 | <tbody> | |
ecdc0628 | 1080 | <tr><td><tt>current</tt> </td><td>Current value</td></tr> |
80ca4592 | 1081 | <tr><td><tt>maximum</tt> </td><td>Maximum value</td></tr> |
ecdc0628 | 1082 | <tr><td><tt>name[PPD_MAX_NAME]</tt> </td><td>Parameter name</td></tr> |
1083 | <tr><td><tt>order</tt> </td><td>Order (0 to N)</td></tr> | |
1084 | <tr><td><tt>text[PPD_MAX_TEXT]</tt> </td><td>Human-readable text</td></tr> | |
1085 | <tr><td><tt>type</tt> </td><td>Parameter type</td></tr> | |
ef416fc2 | 1086 | </tbody></table></div> |
1087 | <!-- NEW PAGE --> | |
ecdc0628 | 1088 | <h3 class='title'><a name='ppd_emul_s'>ppd_emul_s</a></h3> |
ef416fc2 | 1089 | <h4>Description</h4> |
ecdc0628 | 1090 | <p>Emulators</p> |
ef416fc2 | 1091 | <h4>Definition</h4> |
1092 | <pre> | |
ecdc0628 | 1093 | struct ppd_emul_s |
ef416fc2 | 1094 | { |
ecdc0628 | 1095 | char name[PPD_MAX_NAME]; |
1096 | char * start; | |
1097 | char * stop; | |
ef416fc2 | 1098 | }; |
1099 | </pre> | |
1100 | <h4>Members</h4> | |
1101 | <div class='table'><table align='center' border='1' width='80%'> | |
1102 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1103 | <tbody> | |
ecdc0628 | 1104 | <tr><td><tt>name[PPD_MAX_NAME]</tt> </td><td>Emulator name</td></tr> |
1105 | <tr><td><tt>start</tt> </td><td>Code to switch to this emulation</td></tr> | |
1106 | <tr><td><tt>stop</tt> </td><td>Code to stop this emulation</td></tr> | |
ef416fc2 | 1107 | </tbody></table></div> |
1108 | <!-- NEW PAGE --> | |
ecdc0628 | 1109 | <h3 class='title'><a name='ppd_file_s'>ppd_file_s</a></h3> |
ef416fc2 | 1110 | <h4>Description</h4> |
ecdc0628 | 1111 | <p>PPD File</p> |
ef416fc2 | 1112 | <h4>Definition</h4> |
1113 | <pre> | |
ecdc0628 | 1114 | struct ppd_file_s |
ef416fc2 | 1115 | { |
1116 | int accurate_screens; | |
1117 | <a href='#ppd_attr_t'>ppd_attr_t</a> ** attrs; | |
1118 | int color_device; | |
1119 | ppd_cs_t colorspace; | |
1120 | <a href='#ppd_const_t'>ppd_const_t</a> * consts; | |
1121 | int contone_only; | |
ecdc0628 | 1122 | cups_array_t * coptions; |
ef416fc2 | 1123 | int cur_attr; |
1124 | float custom_margins[4]; | |
1125 | float custom_max[2]; | |
1126 | float custom_min[2]; | |
1127 | <a href='#ppd_emul_t'>ppd_emul_t</a> * emulations; | |
ef416fc2 | 1128 | char ** filters; |
1129 | int flip_duplex; | |
1130 | char ** fonts; | |
1131 | <a href='#ppd_group_t'>ppd_group_t</a> * groups; | |
1132 | char * jcl_begin; | |
1133 | char * jcl_end; | |
1134 | char * jcl_ps; | |
1135 | int landscape; | |
1136 | char * lang_encoding; | |
1137 | char * lang_version; | |
1138 | int language_level; | |
1139 | int manual_copies; | |
1140 | char * manufacturer; | |
1141 | int model_number; | |
1142 | char * modelname; | |
1143 | char * nickname; | |
1144 | int num_attrs; | |
1145 | int num_consts; | |
1146 | int num_emulations; | |
ef416fc2 | 1147 | int num_filters; |
1148 | int num_fonts; | |
1149 | int num_groups; | |
1150 | int num_profiles; | |
1151 | int num_sizes; | |
ecdc0628 | 1152 | cups_array_t * options; |
ef416fc2 | 1153 | char * patches; |
1154 | char * pcfilename; | |
1155 | char * product; | |
1156 | <a href='#ppd_profile_t'>ppd_profile_t</a> * profiles; | |
1157 | char * protocols; | |
1158 | char * shortnickname; | |
1159 | <a href='#ppd_size_t'>ppd_size_t</a> * sizes; | |
ecdc0628 | 1160 | cups_array_t * sorted_attrs; |
ef416fc2 | 1161 | int throughput; |
1162 | char * ttrasterizer; | |
1163 | int variable_sizes; | |
1164 | }; | |
1165 | </pre> | |
1166 | <h4>Members</h4> | |
1167 | <div class='table'><table align='center' border='1' width='80%'> | |
1168 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1169 | <tbody> | |
1170 | <tr><td><tt>accurate_screens</tt> </td><td>1 = supports accurate screens, 0 = not</td></tr> | |
ecdc0628 | 1171 | <tr><td><tt>attrs</tt> <span class='info'> CUPS 1.1.19 </span></td><td>Attributes @private@</td></tr> |
ef416fc2 | 1172 | <tr><td><tt>color_device</tt> </td><td>1 = color device, 0 = grayscale</td></tr> |
1173 | <tr><td><tt>colorspace</tt> </td><td>Default colorspace</td></tr> | |
1174 | <tr><td><tt>consts</tt> </td><td>UI/Non-UI constraints</td></tr> | |
1175 | <tr><td><tt>contone_only</tt> </td><td>1 = continuous tone only, 0 = not</td></tr> | |
ecdc0628 | 1176 | <tr><td><tt>coptions</tt> <span class='info'> CUPS 1.2 </span></td><td>Custom options array @private@</td></tr> |
1177 | <tr><td><tt>cur_attr</tt> <span class='info'> CUPS 1.1.19 </span></td><td>Current attribute @private@</td></tr> | |
ef416fc2 | 1178 | <tr><td><tt>custom_margins[4]</tt> </td><td>Margins around page</td></tr> |
1179 | <tr><td><tt>custom_max[2]</tt> </td><td>Maximum variable page size</td></tr> | |
1180 | <tr><td><tt>custom_min[2]</tt> </td><td>Minimum variable page size</td></tr> | |
1181 | <tr><td><tt>emulations</tt> </td><td>Emulations and the code to invoke them</td></tr> | |
ef416fc2 | 1182 | <tr><td><tt>filters</tt> </td><td>Filter strings...</td></tr> |
1183 | <tr><td><tt>flip_duplex</tt> <span class='info'> CUPS 1.1 </span></td><td>1 = Flip page for back sides </td></tr> | |
1184 | <tr><td><tt>fonts</tt> </td><td>Pre-loaded fonts</td></tr> | |
1185 | <tr><td><tt>groups</tt> </td><td>UI groups</td></tr> | |
1186 | <tr><td><tt>jcl_begin</tt> </td><td>Start JCL commands</td></tr> | |
1187 | <tr><td><tt>jcl_end</tt> </td><td>End JCL commands</td></tr> | |
1188 | <tr><td><tt>jcl_ps</tt> </td><td>Enter PostScript interpreter</td></tr> | |
1189 | <tr><td><tt>landscape</tt> </td><td>-90 or 90</td></tr> | |
1190 | <tr><td><tt>lang_encoding</tt> </td><td>Language encoding</td></tr> | |
1191 | <tr><td><tt>lang_version</tt> </td><td>Language version (English, Spanish, etc.)</td></tr> | |
1192 | <tr><td><tt>language_level</tt> </td><td>Language level of device</td></tr> | |
1193 | <tr><td><tt>manual_copies</tt> </td><td>1 = Copies done manually, 0 = hardware</td></tr> | |
1194 | <tr><td><tt>manufacturer</tt> </td><td>Manufacturer name</td></tr> | |
1195 | <tr><td><tt>model_number</tt> </td><td>Device-specific model number</td></tr> | |
1196 | <tr><td><tt>modelname</tt> </td><td>Model name (general)</td></tr> | |
1197 | <tr><td><tt>nickname</tt> </td><td>Nickname (specific)</td></tr> | |
ecdc0628 | 1198 | <tr><td><tt>num_attrs</tt> <span class='info'> CUPS 1.1.19 </span></td><td>Number of attributes @private@</td></tr> |
ef416fc2 | 1199 | <tr><td><tt>num_consts</tt> </td><td>Number of UI/Non-UI constraints</td></tr> |
1200 | <tr><td><tt>num_emulations</tt> </td><td>Number of emulations supported</td></tr> | |
ef416fc2 | 1201 | <tr><td><tt>num_filters</tt> </td><td>Number of filters</td></tr> |
1202 | <tr><td><tt>num_fonts</tt> </td><td>Number of pre-loaded fonts</td></tr> | |
1203 | <tr><td><tt>num_groups</tt> </td><td>Number of UI groups</td></tr> | |
1204 | <tr><td><tt>num_profiles</tt> </td><td>Number of sRGB color profiles</td></tr> | |
1205 | <tr><td><tt>num_sizes</tt> </td><td>Number of page sizes</td></tr> | |
ecdc0628 | 1206 | <tr><td><tt>options</tt> <span class='info'> CUPS 1.2 </span></td><td>Option lookup array @private@</td></tr> |
ef416fc2 | 1207 | <tr><td><tt>patches</tt> </td><td>Patch commands to be sent to printer</td></tr> |
1208 | <tr><td><tt>pcfilename</tt> <span class='info'> CUPS 1.1.19 </span></td><td>PCFileName string </td></tr> | |
1209 | <tr><td><tt>product</tt> </td><td>Product name (from PS RIP/interpreter)</td></tr> | |
1210 | <tr><td><tt>profiles</tt> </td><td>sRGB color profiles</td></tr> | |
1211 | <tr><td><tt>protocols</tt> <span class='info'> CUPS 1.1.19 </span></td><td>Protocols (BCP, TBCP) string </td></tr> | |
1212 | <tr><td><tt>shortnickname</tt> </td><td>Short version of nickname</td></tr> | |
1213 | <tr><td><tt>sizes</tt> </td><td>Page sizes</td></tr> | |
ecdc0628 | 1214 | <tr><td><tt>sorted_attrs</tt> <span class='info'> CUPS 1.2 </span></td><td>Attribute lookup array @private@</td></tr> |
ef416fc2 | 1215 | <tr><td><tt>throughput</tt> </td><td>Pages per minute</td></tr> |
1216 | <tr><td><tt>ttrasterizer</tt> </td><td>Truetype rasterizer</td></tr> | |
1217 | <tr><td><tt>variable_sizes</tt> </td><td>1 = supports variable sizes, 0 = doesn't</td></tr> | |
1218 | </tbody></table></div> | |
1219 | <!-- NEW PAGE --> | |
ecdc0628 | 1220 | <h3 class='title'><a name='ppd_group_s'>ppd_group_s</a></h3> |
ef416fc2 | 1221 | <h4>Description</h4> |
1222 | <p>Groups</p> | |
1223 | <h4>Definition</h4> | |
1224 | <pre> | |
ecdc0628 | 1225 | struct ppd_group_s |
ef416fc2 | 1226 | { |
1227 | char text[PPD_MAX_TEXT - PPD_MAX_NAME]; | |
1228 | char name[PPD_MAX_NAME]; | |
1229 | int num_options; | |
1230 | int num_subgroups; | |
1231 | <a href='#ppd_option_t'>ppd_option_t</a> * options; | |
ecdc0628 | 1232 | struct <a href='#ppd_group_s'>ppd_group_s</a> * subgroups; |
ef416fc2 | 1233 | }; |
1234 | </pre> | |
1235 | <h4>Members</h4> | |
1236 | <div class='table'><table align='center' border='1' width='80%'> | |
1237 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1238 | <tbody> | |
1239 | <tr><td><tt>PPD_MAX_NAME]</tt> </td><td>Human-readable group name</td></tr> | |
1240 | <tr><td><tt>name[PPD_MAX_NAME]</tt> <span class='info'> CUPS 1.1.18 </span></td><td>Group name </td></tr> | |
1241 | <tr><td><tt>num_options</tt> </td><td>Number of options</td></tr> | |
1242 | <tr><td><tt>num_subgroups</tt> </td><td>Number of sub-groups</td></tr> | |
1243 | <tr><td><tt>options</tt> </td><td>Options</td></tr> | |
1244 | <tr><td><tt>subgroups</tt> </td><td>Sub-groups (max depth = 1)</td></tr> | |
1245 | </tbody></table></div> | |
1246 | <!-- NEW PAGE --> | |
ecdc0628 | 1247 | <h3 class='title'><a name='ppd_option_s'>ppd_option_s</a></h3> |
ef416fc2 | 1248 | <h4>Description</h4> |
1249 | <p>Options</p> | |
1250 | <h4>Definition</h4> | |
1251 | <pre> | |
ecdc0628 | 1252 | struct ppd_option_s |
ef416fc2 | 1253 | { |
1254 | <a href='#ppd_choice_t'>ppd_choice_t</a> * choices; | |
1255 | char conflicted; | |
1256 | char defchoice[PPD_MAX_NAME]; | |
1257 | char keyword[PPD_MAX_NAME]; | |
1258 | int num_choices; | |
1259 | float order; | |
1260 | <a href='#ppd_section_t'>ppd_section_t</a> section; | |
1261 | char text[PPD_MAX_TEXT]; | |
1262 | <a href='#ppd_ui_t'>ppd_ui_t</a> ui; | |
1263 | }; | |
1264 | </pre> | |
1265 | <h4>Members</h4> | |
1266 | <div class='table'><table align='center' border='1' width='80%'> | |
1267 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1268 | <tbody> | |
1269 | <tr><td><tt>choices</tt> </td><td>Option choices</td></tr> | |
1270 | <tr><td><tt>conflicted</tt> </td><td>0 if no conflicts exist, 1 otherwise</td></tr> | |
1271 | <tr><td><tt>defchoice[PPD_MAX_NAME]</tt> </td><td>Default option choice</td></tr> | |
1272 | <tr><td><tt>keyword[PPD_MAX_NAME]</tt> </td><td>Option keyword name ("PageSize", etc.)</td></tr> | |
1273 | <tr><td><tt>num_choices</tt> </td><td>Number of option choices</td></tr> | |
1274 | <tr><td><tt>order</tt> </td><td>Order number</td></tr> | |
1275 | <tr><td><tt>section</tt> </td><td>Section for command</td></tr> | |
1276 | <tr><td><tt>text[PPD_MAX_TEXT]</tt> </td><td>Human-readable text</td></tr> | |
1277 | <tr><td><tt>ui</tt> </td><td>Type of UI option</td></tr> | |
1278 | </tbody></table></div> | |
1279 | <!-- NEW PAGE --> | |
ecdc0628 | 1280 | <h3 class='title'><a name='ppd_profile_s'>ppd_profile_s</a></h3> |
ef416fc2 | 1281 | <h4>Description</h4> |
1282 | <p>sRGB Color Profiles</p> | |
1283 | <h4>Definition</h4> | |
1284 | <pre> | |
ecdc0628 | 1285 | struct ppd_profile_s |
ef416fc2 | 1286 | { |
1287 | float density; | |
1288 | float gamma; | |
1289 | float matrix[3][3]; | |
1290 | char media_type[PPD_MAX_NAME]; | |
1291 | char resolution[PPD_MAX_NAME]; | |
1292 | }; | |
1293 | </pre> | |
1294 | <h4>Members</h4> | |
1295 | <div class='table'><table align='center' border='1' width='80%'> | |
1296 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1297 | <tbody> | |
1298 | <tr><td><tt>density</tt> </td><td>Ink density to use</td></tr> | |
1299 | <tr><td><tt>gamma</tt> </td><td>Gamma correction to use</td></tr> | |
1300 | <tr><td><tt>matrix[3][3]</tt> </td><td>Transform matrix</td></tr> | |
1301 | <tr><td><tt>media_type[PPD_MAX_NAME]</tt> </td><td>Media type or "-"</td></tr> | |
1302 | <tr><td><tt>resolution[PPD_MAX_NAME]</tt> </td><td>Resolution or "-"</td></tr> | |
1303 | </tbody></table></div> | |
1304 | <!-- NEW PAGE --> | |
ecdc0628 | 1305 | <h3 class='title'><a name='ppd_size_s'>ppd_size_s</a></h3> |
ef416fc2 | 1306 | <h4>Description</h4> |
1307 | <p>Page Sizes</p> | |
1308 | <h4>Definition</h4> | |
1309 | <pre> | |
ecdc0628 | 1310 | struct ppd_size_s |
ef416fc2 | 1311 | { |
1312 | float bottom; | |
1313 | float left; | |
1314 | float length; | |
1315 | int marked; | |
1316 | char name[PPD_MAX_NAME]; | |
1317 | float right; | |
1318 | float top; | |
1319 | float width; | |
1320 | }; | |
1321 | </pre> | |
1322 | <h4>Members</h4> | |
1323 | <div class='table'><table align='center' border='1' width='80%'> | |
1324 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1325 | <tbody> | |
1326 | <tr><td><tt>bottom</tt> </td><td>Bottom printable margin in points</td></tr> | |
1327 | <tr><td><tt>left</tt> </td><td>Left printable margin in points</td></tr> | |
1328 | <tr><td><tt>length</tt> </td><td>Length of media in points</td></tr> | |
1329 | <tr><td><tt>marked</tt> </td><td>Page size selected?</td></tr> | |
1330 | <tr><td><tt>name[PPD_MAX_NAME]</tt> </td><td>Media size option</td></tr> | |
1331 | <tr><td><tt>right</tt> </td><td>Right printable margin in points</td></tr> | |
1332 | <tr><td><tt>top</tt> </td><td>Top printable margin in points</td></tr> | |
1333 | <tr><td><tt>width</tt> </td><td>Width of media in points</td></tr> | |
1334 | </tbody></table></div> | |
1335 | <!-- NEW PAGE --> | |
1336 | <h2 class='title'><a name='TYPES'>Types</a></h2> | |
1337 | <ul> | |
1338 | <li><a href='#ppd_attr_t'><tt>ppd_attr_t</tt></a> <span class='info'> CUPS 1.1.19 </span></li> | |
1339 | <li><a href='#ppd_choice_t'><tt>ppd_choice_t</tt></a> </li> | |
1340 | <li><a href='#ppd_const_t'><tt>ppd_const_t</tt></a> </li> | |
ecdc0628 | 1341 | <li><a href='#ppd_coption_t'><tt>ppd_coption_t</tt></a> <span class='info'> CUPS 1.2 </span></li> |
1342 | <li><a href='#ppd_cparam_t'><tt>ppd_cparam_t</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
80ca4592 | 1343 | <li><a href='#ppd_cplimit_t'><tt>ppd_cplimit_t</tt></a> <span class='info'> CUPS 1.2 </span></li> |
ecdc0628 | 1344 | <li><a href='#ppd_cptype_t'><tt>ppd_cptype_t</tt></a> <span class='info'> CUPS 1.2 </span></li> |
1345 | <li><a href='#ppd_cpvalue_t'><tt>ppd_cpvalue_t</tt></a> <span class='info'> CUPS 1.2 </span></li> | |
ef416fc2 | 1346 | <li><a href='#ppd_emul_t'><tt>ppd_emul_t</tt></a> </li> |
ef416fc2 | 1347 | <li><a href='#ppd_file_t'><tt>ppd_file_t</tt></a> </li> |
1348 | <li><a href='#ppd_group_t'><tt>ppd_group_t</tt></a> </li> | |
1349 | <li><a href='#ppd_option_t'><tt>ppd_option_t</tt></a> </li> | |
1350 | <li><a href='#ppd_profile_t'><tt>ppd_profile_t</tt></a> </li> | |
1351 | <li><a href='#ppd_section_t'><tt>ppd_section_t</tt></a> </li> | |
1352 | <li><a href='#ppd_size_t'><tt>ppd_size_t</tt></a> </li> | |
1353 | <li><a href='#ppd_ui_t'><tt>ppd_ui_t</tt></a> </li> | |
1354 | </ul> | |
1355 | <!-- NEW PAGE --> | |
1356 | <h3 class='title'><span class='info'> CUPS 1.1.19 </span><a name='ppd_attr_t'>ppd_attr_t</a></h3> | |
1357 | <h4>Description</h4> | |
1358 | <p>PPD Attribute Structure </p> | |
1359 | <h4>Definition</h4> | |
1360 | <pre> | |
ecdc0628 | 1361 | typedef struct <a href='#ppd_attr_s'>ppd_attr_s</a> ppd_attr_t; |
ef416fc2 | 1362 | </pre> |
1363 | <!-- NEW PAGE --> | |
1364 | <h3 class='title'><a name='ppd_choice_t'>ppd_choice_t</a></h3> | |
1365 | <h4>Description</h4> | |
1366 | <p>Option choices</p> | |
1367 | <h4>Definition</h4> | |
1368 | <pre> | |
ecdc0628 | 1369 | typedef struct <a href='#ppd_choice_s'>ppd_choice_s</a> ppd_choice_t; |
ef416fc2 | 1370 | </pre> |
1371 | <!-- NEW PAGE --> | |
1372 | <h3 class='title'><a name='ppd_const_t'>ppd_const_t</a></h3> | |
1373 | <h4>Description</h4> | |
1374 | <p>Constraints</p> | |
1375 | <h4>Definition</h4> | |
1376 | <pre> | |
1377 | typedef struct ppd_const_t; | |
1378 | </pre> | |
1379 | <!-- NEW PAGE --> | |
ecdc0628 | 1380 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppd_coption_t'>ppd_coption_t</a></h3> |
ef416fc2 | 1381 | <h4>Description</h4> |
ecdc0628 | 1382 | <p>Custom Option </p> |
ef416fc2 | 1383 | <h4>Definition</h4> |
1384 | <pre> | |
ecdc0628 | 1385 | typedef struct <a href='#ppd_coption_s'>ppd_coption_s</a> ppd_coption_t; |
ef416fc2 | 1386 | </pre> |
1387 | <!-- NEW PAGE --> | |
ecdc0628 | 1388 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppd_cparam_t'>ppd_cparam_t</a></h3> |
ef416fc2 | 1389 | <h4>Description</h4> |
ecdc0628 | 1390 | <p>Custom Parameter </p> |
ef416fc2 | 1391 | <h4>Definition</h4> |
1392 | <pre> | |
ecdc0628 | 1393 | typedef struct <a href='#ppd_cparam_s'>ppd_cparam_s</a> ppd_cparam_t; |
ef416fc2 | 1394 | </pre> |
1395 | <!-- NEW PAGE --> | |
80ca4592 | 1396 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppd_cplimit_t'>ppd_cplimit_t</a></h3> |
1397 | <h4>Description</h4> | |
1398 | <p>Custom Parameter Limit </p> | |
1399 | <h4>Definition</h4> | |
1400 | <pre> | |
1401 | typedef union <a href='#ppd_cplimit_u'>ppd_cplimit_u</a> ppd_cplimit_t; | |
1402 | </pre> | |
1403 | <!-- NEW PAGE --> | |
ecdc0628 | 1404 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppd_cptype_t'>ppd_cptype_t</a></h3> |
ef416fc2 | 1405 | <h4>Description</h4> |
ecdc0628 | 1406 | <p>Custom Parameter Type </p> |
ef416fc2 | 1407 | <h4>Definition</h4> |
1408 | <pre> | |
ecdc0628 | 1409 | typedef enum <a href='#ppd_cptype_e'>ppd_cptype_e</a> ppd_cptype_t; |
ef416fc2 | 1410 | </pre> |
1411 | <!-- NEW PAGE --> | |
ecdc0628 | 1412 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppd_cpvalue_t'>ppd_cpvalue_t</a></h3> |
ef416fc2 | 1413 | <h4>Description</h4> |
ecdc0628 | 1414 | <p>Custom Parameter Value </p> |
ef416fc2 | 1415 | <h4>Definition</h4> |
1416 | <pre> | |
ecdc0628 | 1417 | typedef union <a href='#ppd_cpvalue_u'>ppd_cpvalue_u</a> ppd_cpvalue_t; |
ef416fc2 | 1418 | </pre> |
1419 | <!-- NEW PAGE --> | |
ecdc0628 | 1420 | <h3 class='title'><a name='ppd_emul_t'>ppd_emul_t</a></h3> |
ef416fc2 | 1421 | <h4>Description</h4> |
ecdc0628 | 1422 | <p>Emulators</p> |
ef416fc2 | 1423 | <h4>Definition</h4> |
1424 | <pre> | |
ecdc0628 | 1425 | typedef struct <a href='#ppd_emul_s'>ppd_emul_s</a> ppd_emul_t; |
ef416fc2 | 1426 | </pre> |
1427 | <!-- NEW PAGE --> | |
1428 | <h3 class='title'><a name='ppd_file_t'>ppd_file_t</a></h3> | |
1429 | <h4>Description</h4> | |
ecdc0628 | 1430 | <p>PPD File</p> |
ef416fc2 | 1431 | <h4>Definition</h4> |
1432 | <pre> | |
ecdc0628 | 1433 | typedef struct <a href='#ppd_file_s'>ppd_file_s</a> ppd_file_t; |
ef416fc2 | 1434 | </pre> |
1435 | <!-- NEW PAGE --> | |
1436 | <h3 class='title'><a name='ppd_group_t'>ppd_group_t</a></h3> | |
1437 | <h4>Description</h4> | |
1438 | <p>Groups</p> | |
1439 | <h4>Definition</h4> | |
1440 | <pre> | |
ecdc0628 | 1441 | typedef struct <a href='#ppd_group_s'>ppd_group_s</a> ppd_group_t; |
ef416fc2 | 1442 | </pre> |
1443 | <!-- NEW PAGE --> | |
1444 | <h3 class='title'><a name='ppd_option_t'>ppd_option_t</a></h3> | |
1445 | <h4>Description</h4> | |
1446 | <p>Options</p> | |
1447 | <h4>Definition</h4> | |
1448 | <pre> | |
ecdc0628 | 1449 | typedef struct <a href='#ppd_option_s'>ppd_option_s</a> ppd_option_t; |
ef416fc2 | 1450 | </pre> |
1451 | <!-- NEW PAGE --> | |
1452 | <h3 class='title'><a name='ppd_profile_t'>ppd_profile_t</a></h3> | |
1453 | <h4>Description</h4> | |
1454 | <p>sRGB Color Profiles</p> | |
1455 | <h4>Definition</h4> | |
1456 | <pre> | |
ecdc0628 | 1457 | typedef struct <a href='#ppd_profile_s'>ppd_profile_s</a> ppd_profile_t; |
ef416fc2 | 1458 | </pre> |
1459 | <!-- NEW PAGE --> | |
1460 | <h3 class='title'><a name='ppd_section_t'>ppd_section_t</a></h3> | |
1461 | <h4>Description</h4> | |
1462 | <p>Order dependency sections</p> | |
1463 | <h4>Definition</h4> | |
1464 | <pre> | |
1465 | typedef enum <a href='#ppd_section_e'>ppd_section_e</a> ppd_section_t; | |
1466 | </pre> | |
1467 | <!-- NEW PAGE --> | |
1468 | <h3 class='title'><a name='ppd_size_t'>ppd_size_t</a></h3> | |
1469 | <h4>Description</h4> | |
1470 | <p>Page Sizes</p> | |
1471 | <h4>Definition</h4> | |
1472 | <pre> | |
ecdc0628 | 1473 | typedef struct <a href='#ppd_size_s'>ppd_size_s</a> ppd_size_t; |
ef416fc2 | 1474 | </pre> |
1475 | <!-- NEW PAGE --> | |
1476 | <h3 class='title'><a name='ppd_ui_t'>ppd_ui_t</a></h3> | |
1477 | <h4>Description</h4> | |
1478 | <p>UI Types</p> | |
1479 | <h4>Definition</h4> | |
1480 | <pre> | |
1481 | typedef enum <a href='#ppd_ui_e'>ppd_ui_e</a> ppd_ui_t; | |
1482 | </pre> | |
1483 | <!-- NEW PAGE --> | |
1484 | <h2 class='title'><a name='UNIONS'>Unions</a></h2> | |
1485 | <ul> | |
80ca4592 | 1486 | <li><a href='#ppd_cplimit_u'><tt>ppd_cplimit_u</tt></a> <span class='info'> CUPS 1.2 </span></li> |
ecdc0628 | 1487 | <li><a href='#ppd_cpvalue_u'><tt>ppd_cpvalue_u</tt></a> <span class='info'> CUPS 1.2 </span></li> |
ef416fc2 | 1488 | </ul> |
1489 | <!-- NEW PAGE --> | |
80ca4592 | 1490 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppd_cplimit_u'>ppd_cplimit_u</a></h3> |
1491 | <h4>Description</h4> | |
1492 | <p>Custom Parameter Limit </p> | |
1493 | <h4>Definition</h4> | |
1494 | <pre> | |
1495 | union ppd_cplimit_u | |
1496 | { | |
1497 | float custom_curve; | |
1498 | int custom_int; | |
1499 | float custom_invcurve; | |
1500 | int custom_passcode; | |
1501 | int custom_password; | |
1502 | float custom_points; | |
1503 | float custom_real; | |
1504 | int custom_string; | |
1505 | }; | |
1506 | </pre> | |
1507 | <h4>Members</h4> | |
1508 | <div class='table'><table align='center' border='1' width='80%'> | |
1509 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1510 | <tbody> | |
1511 | <tr><td><tt>custom_curve</tt> </td><td>Gamma value</td></tr> | |
1512 | <tr><td><tt>custom_int</tt> </td><td>Integer value</td></tr> | |
1513 | <tr><td><tt>custom_invcurve</tt> </td><td>Gamma value</td></tr> | |
1514 | <tr><td><tt>custom_passcode</tt> </td><td>Passcode length</td></tr> | |
1515 | <tr><td><tt>custom_password</tt> </td><td>Password length</td></tr> | |
1516 | <tr><td><tt>custom_points</tt> </td><td>Measurement value</td></tr> | |
1517 | <tr><td><tt>custom_real</tt> </td><td>Real value</td></tr> | |
1518 | <tr><td><tt>custom_string</tt> </td><td>String length</td></tr> | |
1519 | </tbody></table></div> | |
1520 | <!-- NEW PAGE --> | |
ecdc0628 | 1521 | <h3 class='title'><span class='info'> CUPS 1.2 </span><a name='ppd_cpvalue_u'>ppd_cpvalue_u</a></h3> |
ef416fc2 | 1522 | <h4>Description</h4> |
ecdc0628 | 1523 | <p>Custom Parameter Value </p> |
ef416fc2 | 1524 | <h4>Definition</h4> |
1525 | <pre> | |
ecdc0628 | 1526 | union ppd_cpvalue_u |
ef416fc2 | 1527 | { |
ecdc0628 | 1528 | float custom_curve; |
1529 | int custom_int; | |
1530 | float custom_invcurve; | |
1531 | char * custom_passcode; | |
1532 | char * custom_password; | |
1533 | float custom_points; | |
1534 | float custom_real; | |
1535 | char * custom_string; | |
ef416fc2 | 1536 | }; |
1537 | </pre> | |
1538 | <h4>Members</h4> | |
1539 | <div class='table'><table align='center' border='1' width='80%'> | |
1540 | <thead><tr><th>Name</th><th>Description</th></tr></thead> | |
1541 | <tbody> | |
ecdc0628 | 1542 | <tr><td><tt>custom_curve</tt> </td><td>Gamma value</td></tr> |
1543 | <tr><td><tt>custom_int</tt> </td><td>Integer value</td></tr> | |
1544 | <tr><td><tt>custom_invcurve</tt> </td><td>Gamma value</td></tr> | |
1545 | <tr><td><tt>custom_passcode</tt> </td><td>Passcode value</td></tr> | |
1546 | <tr><td><tt>custom_password</tt> </td><td>Password value</td></tr> | |
1547 | <tr><td><tt>custom_points</tt> </td><td>Measurement value</td></tr> | |
1548 | <tr><td><tt>custom_real</tt> </td><td>Real value</td></tr> | |
1549 | <tr><td><tt>custom_string</tt> </td><td>String value</td></tr> | |
ef416fc2 | 1550 | </tbody></table></div> |
1551 | </body> | |
1552 | </html> |