xref: /aosp_15_r20/external/libcups/doc/help/api-ppd.html (revision 5e7646d21f1134fb0638875d812ef646c12ab91e)
1*5e7646d2SAndroid Build Coastguard Worker<!DOCTYPE html>
2*5e7646d2SAndroid Build Coastguard Worker<html>
3*5e7646d2SAndroid Build Coastguard Worker<!-- SECTION: Programming -->
4*5e7646d2SAndroid Build Coastguard Worker  <head>
5*5e7646d2SAndroid Build Coastguard Worker    <title>PPD API (DEPRECATED)</title>
6*5e7646d2SAndroid Build Coastguard Worker    <meta name="keywords" content="Programming">
7*5e7646d2SAndroid Build Coastguard Worker    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
8*5e7646d2SAndroid Build Coastguard Worker    <meta name="creator" content="codedoc v3.1">
9*5e7646d2SAndroid Build Coastguard Worker    <meta name="author" content="Unknown">
10*5e7646d2SAndroid Build Coastguard Worker    <meta name="copyright" content="Unknown">
11*5e7646d2SAndroid Build Coastguard Worker    <meta name="version" content="0.0">
12*5e7646d2SAndroid Build Coastguard Worker    <style type="text/css"><!--
13*5e7646d2SAndroid Build Coastguard WorkerBODY {
14*5e7646d2SAndroid Build Coastguard Worker  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
15*5e7646d2SAndroid Build Coastguard Worker}
16*5e7646d2SAndroid Build Coastguard Worker
17*5e7646d2SAndroid Build Coastguard WorkerH1, H2, H3, H4, H5, H6, P, TD, TH {
18*5e7646d2SAndroid Build Coastguard Worker  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
19*5e7646d2SAndroid Build Coastguard Worker}
20*5e7646d2SAndroid Build Coastguard Worker
21*5e7646d2SAndroid Build Coastguard WorkerH1 { font-size: 2em; }
22*5e7646d2SAndroid Build Coastguard WorkerH2 { font-size: 1.75em; }
23*5e7646d2SAndroid Build Coastguard WorkerH3 { font-size: 1.5em; }
24*5e7646d2SAndroid Build Coastguard WorkerH4 { font-size: 1.25em; }
25*5e7646d2SAndroid Build Coastguard Worker
26*5e7646d2SAndroid Build Coastguard WorkerKBD {
27*5e7646d2SAndroid Build Coastguard Worker  font-family: monaco, courier, monospace;
28*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
29*5e7646d2SAndroid Build Coastguard Worker}
30*5e7646d2SAndroid Build Coastguard Worker
31*5e7646d2SAndroid Build Coastguard WorkerPRE {
32*5e7646d2SAndroid Build Coastguard Worker  font-family: monaco, courier, monospace;
33*5e7646d2SAndroid Build Coastguard Worker}
34*5e7646d2SAndroid Build Coastguard Worker
35*5e7646d2SAndroid Build Coastguard WorkerBLOCKQUOTE {
36*5e7646d2SAndroid Build Coastguard Worker  border-left: solid 2px #777;
37*5e7646d2SAndroid Build Coastguard Worker  margin: 1em 0;
38*5e7646d2SAndroid Build Coastguard Worker  padding: 10px;
39*5e7646d2SAndroid Build Coastguard Worker}
40*5e7646d2SAndroid Build Coastguard Worker
41*5e7646d2SAndroid Build Coastguard WorkerBLOCKQUOTE OL LI {
42*5e7646d2SAndroid Build Coastguard Worker  margin-left: -1em;
43*5e7646d2SAndroid Build Coastguard Worker}
44*5e7646d2SAndroid Build Coastguard Worker
45*5e7646d2SAndroid Build Coastguard WorkerPRE.command, PRE.example {
46*5e7646d2SAndroid Build Coastguard Worker  background: #eee;
47*5e7646d2SAndroid Build Coastguard Worker  margin: 0 36pt;
48*5e7646d2SAndroid Build Coastguard Worker  padding: 10px;
49*5e7646d2SAndroid Build Coastguard Worker}
50*5e7646d2SAndroid Build Coastguard Worker
51*5e7646d2SAndroid Build Coastguard WorkerP.compact {
52*5e7646d2SAndroid Build Coastguard Worker  margin: 0;
53*5e7646d2SAndroid Build Coastguard Worker}
54*5e7646d2SAndroid Build Coastguard Worker
55*5e7646d2SAndroid Build Coastguard WorkerP.example {
56*5e7646d2SAndroid Build Coastguard Worker  font-style: italic;
57*5e7646d2SAndroid Build Coastguard Worker  margin-left: 36pt;
58*5e7646d2SAndroid Build Coastguard Worker}
59*5e7646d2SAndroid Build Coastguard Worker
60*5e7646d2SAndroid Build Coastguard WorkerDL.man DD {
61*5e7646d2SAndroid Build Coastguard Worker  margin-left: 5em;
62*5e7646d2SAndroid Build Coastguard Worker}
63*5e7646d2SAndroid Build Coastguard Worker
64*5e7646d2SAndroid Build Coastguard WorkerDL.man DT {
65*5e7646d2SAndroid Build Coastguard Worker  margin-left: 0;
66*5e7646d2SAndroid Build Coastguard Worker}
67*5e7646d2SAndroid Build Coastguard Worker
68*5e7646d2SAndroid Build Coastguard WorkerPRE.man {
69*5e7646d2SAndroid Build Coastguard Worker  margin: 0;
70*5e7646d2SAndroid Build Coastguard Worker}
71*5e7646d2SAndroid Build Coastguard Worker
72*5e7646d2SAndroid Build Coastguard WorkerPRE.command EM, PRE.example EM {
73*5e7646d2SAndroid Build Coastguard Worker  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
74*5e7646d2SAndroid Build Coastguard Worker}
75*5e7646d2SAndroid Build Coastguard Worker
76*5e7646d2SAndroid Build Coastguard WorkerP.command {
77*5e7646d2SAndroid Build Coastguard Worker  font-family: monaco, courier, monospace;
78*5e7646d2SAndroid Build Coastguard Worker  margin-left: 36pt;
79*5e7646d2SAndroid Build Coastguard Worker}
80*5e7646d2SAndroid Build Coastguard Worker
81*5e7646d2SAndroid Build Coastguard WorkerP.formula {
82*5e7646d2SAndroid Build Coastguard Worker  font-style: italic;
83*5e7646d2SAndroid Build Coastguard Worker  margin-left: 36pt;
84*5e7646d2SAndroid Build Coastguard Worker}
85*5e7646d2SAndroid Build Coastguard Worker
86*5e7646d2SAndroid Build Coastguard WorkerA IMG {
87*5e7646d2SAndroid Build Coastguard Worker  border: none;
88*5e7646d2SAndroid Build Coastguard Worker}
89*5e7646d2SAndroid Build Coastguard Worker
90*5e7646d2SAndroid Build Coastguard WorkerA:link:hover IMG {
91*5e7646d2SAndroid Build Coastguard Worker  background: #f0f0f0;
92*5e7646d2SAndroid Build Coastguard Worker  border-radius: 10px;
93*5e7646d2SAndroid Build Coastguard Worker  -moz-border-radius: 10px;
94*5e7646d2SAndroid Build Coastguard Worker}
95*5e7646d2SAndroid Build Coastguard Worker
96*5e7646d2SAndroid Build Coastguard WorkerA:link, A:visited {
97*5e7646d2SAndroid Build Coastguard Worker  font-weight: inherit;
98*5e7646d2SAndroid Build Coastguard Worker  text-decoration: none;
99*5e7646d2SAndroid Build Coastguard Worker}
100*5e7646d2SAndroid Build Coastguard Worker
101*5e7646d2SAndroid Build Coastguard WorkerA:link:hover, A:visited:hover, A:active {
102*5e7646d2SAndroid Build Coastguard Worker  text-decoration: underline;
103*5e7646d2SAndroid Build Coastguard Worker}
104*5e7646d2SAndroid Build Coastguard Worker
105*5e7646d2SAndroid Build Coastguard WorkerSUB, SUP {
106*5e7646d2SAndroid Build Coastguard Worker  font-size: 50%;
107*5e7646d2SAndroid Build Coastguard Worker}
108*5e7646d2SAndroid Build Coastguard Worker
109*5e7646d2SAndroid Build Coastguard WorkerTR.data, TD.data, TR.data TD {
110*5e7646d2SAndroid Build Coastguard Worker  margin-top: 10pt;
111*5e7646d2SAndroid Build Coastguard Worker  padding: 5pt;
112*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 1pt #999999;
113*5e7646d2SAndroid Build Coastguard Worker}
114*5e7646d2SAndroid Build Coastguard Worker
115*5e7646d2SAndroid Build Coastguard WorkerTR.data TH {
116*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 1pt #999999;
117*5e7646d2SAndroid Build Coastguard Worker  padding-top: 10pt;
118*5e7646d2SAndroid Build Coastguard Worker  padding-left: 5pt;
119*5e7646d2SAndroid Build Coastguard Worker  text-align: left;
120*5e7646d2SAndroid Build Coastguard Worker}
121*5e7646d2SAndroid Build Coastguard Worker
122*5e7646d2SAndroid Build Coastguard WorkerDIV.table TABLE {
123*5e7646d2SAndroid Build Coastguard Worker  border: solid thin #999999;
124*5e7646d2SAndroid Build Coastguard Worker  border-collapse: collapse;
125*5e7646d2SAndroid Build Coastguard Worker  border-spacing: 0;
126*5e7646d2SAndroid Build Coastguard Worker  margin-left: auto;
127*5e7646d2SAndroid Build Coastguard Worker  margin-right: auto;
128*5e7646d2SAndroid Build Coastguard Worker}
129*5e7646d2SAndroid Build Coastguard Worker
130*5e7646d2SAndroid Build Coastguard WorkerDIV.table CAPTION {
131*5e7646d2SAndroid Build Coastguard Worker  caption-side: top;
132*5e7646d2SAndroid Build Coastguard Worker  font-size: 120%;
133*5e7646d2SAndroid Build Coastguard Worker  font-style: italic;
134*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
135*5e7646d2SAndroid Build Coastguard Worker  margin-left: auto;
136*5e7646d2SAndroid Build Coastguard Worker  margin-right: auto;
137*5e7646d2SAndroid Build Coastguard Worker}
138*5e7646d2SAndroid Build Coastguard Worker
139*5e7646d2SAndroid Build Coastguard WorkerDIV.table TABLE TD {
140*5e7646d2SAndroid Build Coastguard Worker  border: solid thin #cccccc;
141*5e7646d2SAndroid Build Coastguard Worker  padding: 5pt 10pt 0;
142*5e7646d2SAndroid Build Coastguard Worker}
143*5e7646d2SAndroid Build Coastguard Worker
144*5e7646d2SAndroid Build Coastguard WorkerDIV.table TABLE TH {
145*5e7646d2SAndroid Build Coastguard Worker  background: #cccccc;
146*5e7646d2SAndroid Build Coastguard Worker  border: none;
147*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid thin #999999;
148*5e7646d2SAndroid Build Coastguard Worker}
149*5e7646d2SAndroid Build Coastguard Worker
150*5e7646d2SAndroid Build Coastguard WorkerDIV.figure TABLE {
151*5e7646d2SAndroid Build Coastguard Worker  margin-left: auto;
152*5e7646d2SAndroid Build Coastguard Worker  margin-right: auto;
153*5e7646d2SAndroid Build Coastguard Worker}
154*5e7646d2SAndroid Build Coastguard Worker
155*5e7646d2SAndroid Build Coastguard WorkerDIV.figure CAPTION {
156*5e7646d2SAndroid Build Coastguard Worker  caption-side: bottom;
157*5e7646d2SAndroid Build Coastguard Worker  font-size: 120%;
158*5e7646d2SAndroid Build Coastguard Worker  font-style: italic;
159*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
160*5e7646d2SAndroid Build Coastguard Worker  margin-left: auto;
161*5e7646d2SAndroid Build Coastguard Worker  margin-right: auto;
162*5e7646d2SAndroid Build Coastguard Worker}
163*5e7646d2SAndroid Build Coastguard Worker
164*5e7646d2SAndroid Build Coastguard WorkerTH.label {
165*5e7646d2SAndroid Build Coastguard Worker  text-align: right;
166*5e7646d2SAndroid Build Coastguard Worker  vertical-align: top;
167*5e7646d2SAndroid Build Coastguard Worker}
168*5e7646d2SAndroid Build Coastguard Worker
169*5e7646d2SAndroid Build Coastguard WorkerTH.sublabel {
170*5e7646d2SAndroid Build Coastguard Worker  text-align: right;
171*5e7646d2SAndroid Build Coastguard Worker  font-weight: normal;
172*5e7646d2SAndroid Build Coastguard Worker}
173*5e7646d2SAndroid Build Coastguard Worker
174*5e7646d2SAndroid Build Coastguard WorkerHR {
175*5e7646d2SAndroid Build Coastguard Worker  border: solid thin;
176*5e7646d2SAndroid Build Coastguard Worker}
177*5e7646d2SAndroid Build Coastguard Worker
178*5e7646d2SAndroid Build Coastguard WorkerSPAN.info {
179*5e7646d2SAndroid Build Coastguard Worker  background: black;
180*5e7646d2SAndroid Build Coastguard Worker  border: thin solid black;
181*5e7646d2SAndroid Build Coastguard Worker  color: white;
182*5e7646d2SAndroid Build Coastguard Worker  font-size: 80%;
183*5e7646d2SAndroid Build Coastguard Worker  font-style: italic;
184*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
185*5e7646d2SAndroid Build Coastguard Worker  white-space: nowrap;
186*5e7646d2SAndroid Build Coastguard Worker}
187*5e7646d2SAndroid Build Coastguard Worker
188*5e7646d2SAndroid Build Coastguard WorkerH2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
189*5e7646d2SAndroid Build Coastguard Worker  float: right;
190*5e7646d2SAndroid Build Coastguard Worker  font-size: 100%;
191*5e7646d2SAndroid Build Coastguard Worker}
192*5e7646d2SAndroid Build Coastguard Worker
193*5e7646d2SAndroid Build Coastguard WorkerH1.title {
194*5e7646d2SAndroid Build Coastguard Worker}
195*5e7646d2SAndroid Build Coastguard Worker
196*5e7646d2SAndroid Build Coastguard WorkerH2.title, H3.title {
197*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2pt #000000;
198*5e7646d2SAndroid Build Coastguard Worker}
199*5e7646d2SAndroid Build Coastguard Worker
200*5e7646d2SAndroid Build Coastguard WorkerDIV.indent, TABLE.indent {
201*5e7646d2SAndroid Build Coastguard Worker  margin-top: 2em;
202*5e7646d2SAndroid Build Coastguard Worker  margin-left: auto;
203*5e7646d2SAndroid Build Coastguard Worker  margin-right: auto;
204*5e7646d2SAndroid Build Coastguard Worker  width: 90%;
205*5e7646d2SAndroid Build Coastguard Worker}
206*5e7646d2SAndroid Build Coastguard Worker
207*5e7646d2SAndroid Build Coastguard WorkerTABLE.indent {
208*5e7646d2SAndroid Build Coastguard Worker  border-collapse: collapse;
209*5e7646d2SAndroid Build Coastguard Worker}
210*5e7646d2SAndroid Build Coastguard Worker
211*5e7646d2SAndroid Build Coastguard WorkerTABLE.indent TD, TABLE.indent TH {
212*5e7646d2SAndroid Build Coastguard Worker  padding: 0;
213*5e7646d2SAndroid Build Coastguard Worker}
214*5e7646d2SAndroid Build Coastguard Worker
215*5e7646d2SAndroid Build Coastguard WorkerTABLE.list {
216*5e7646d2SAndroid Build Coastguard Worker  border-collapse: collapse;
217*5e7646d2SAndroid Build Coastguard Worker  margin-left: auto;
218*5e7646d2SAndroid Build Coastguard Worker  margin-right: auto;
219*5e7646d2SAndroid Build Coastguard Worker  width: 90%;
220*5e7646d2SAndroid Build Coastguard Worker}
221*5e7646d2SAndroid Build Coastguard Worker
222*5e7646d2SAndroid Build Coastguard WorkerTABLE.list TH {
223*5e7646d2SAndroid Build Coastguard Worker  background: white;
224*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid thin #cccccc;
225*5e7646d2SAndroid Build Coastguard Worker  color: #444444;
226*5e7646d2SAndroid Build Coastguard Worker  padding-top: 10pt;
227*5e7646d2SAndroid Build Coastguard Worker  padding-left: 5pt;
228*5e7646d2SAndroid Build Coastguard Worker  text-align: left;
229*5e7646d2SAndroid Build Coastguard Worker  vertical-align: bottom;
230*5e7646d2SAndroid Build Coastguard Worker  white-space: nowrap;
231*5e7646d2SAndroid Build Coastguard Worker}
232*5e7646d2SAndroid Build Coastguard Worker
233*5e7646d2SAndroid Build Coastguard WorkerTABLE.list TH A {
234*5e7646d2SAndroid Build Coastguard Worker  color: #4444cc;
235*5e7646d2SAndroid Build Coastguard Worker}
236*5e7646d2SAndroid Build Coastguard Worker
237*5e7646d2SAndroid Build Coastguard WorkerTABLE.list TD {
238*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid thin #eeeeee;
239*5e7646d2SAndroid Build Coastguard Worker  padding-top: 5pt;
240*5e7646d2SAndroid Build Coastguard Worker  padding-left: 5pt;
241*5e7646d2SAndroid Build Coastguard Worker}
242*5e7646d2SAndroid Build Coastguard Worker
243*5e7646d2SAndroid Build Coastguard WorkerTABLE.list TR:nth-child(even) {
244*5e7646d2SAndroid Build Coastguard Worker  background: #f8f8f8;
245*5e7646d2SAndroid Build Coastguard Worker}
246*5e7646d2SAndroid Build Coastguard Worker
247*5e7646d2SAndroid Build Coastguard WorkerTABLE.list TR:nth-child(odd) {
248*5e7646d2SAndroid Build Coastguard Worker  background: #f4f4f4;
249*5e7646d2SAndroid Build Coastguard Worker}
250*5e7646d2SAndroid Build Coastguard Worker
251*5e7646d2SAndroid Build Coastguard WorkerDT {
252*5e7646d2SAndroid Build Coastguard Worker  margin-left: 36pt;
253*5e7646d2SAndroid Build Coastguard Worker  margin-top: 12pt;
254*5e7646d2SAndroid Build Coastguard Worker}
255*5e7646d2SAndroid Build Coastguard Worker
256*5e7646d2SAndroid Build Coastguard WorkerDD {
257*5e7646d2SAndroid Build Coastguard Worker  margin-left: 54pt;
258*5e7646d2SAndroid Build Coastguard Worker}
259*5e7646d2SAndroid Build Coastguard Worker
260*5e7646d2SAndroid Build Coastguard WorkerDL.category DT {
261*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
262*5e7646d2SAndroid Build Coastguard Worker}
263*5e7646d2SAndroid Build Coastguard Worker
264*5e7646d2SAndroid Build Coastguard WorkerP.summary {
265*5e7646d2SAndroid Build Coastguard Worker  margin-left: 36pt;
266*5e7646d2SAndroid Build Coastguard Worker  font-family: monaco, courier, monospace;
267*5e7646d2SAndroid Build Coastguard Worker}
268*5e7646d2SAndroid Build Coastguard Worker
269*5e7646d2SAndroid Build Coastguard WorkerDIV.summary TABLE {
270*5e7646d2SAndroid Build Coastguard Worker  border: solid thin #999999;
271*5e7646d2SAndroid Build Coastguard Worker  border-collapse: collapse;
272*5e7646d2SAndroid Build Coastguard Worker  border-spacing: 0;
273*5e7646d2SAndroid Build Coastguard Worker  margin: 10px;
274*5e7646d2SAndroid Build Coastguard Worker}
275*5e7646d2SAndroid Build Coastguard Worker
276*5e7646d2SAndroid Build Coastguard WorkerDIV.summary TABLE TD, DIV.summary TABLE TH {
277*5e7646d2SAndroid Build Coastguard Worker  border: solid thin #999999;
278*5e7646d2SAndroid Build Coastguard Worker  padding: 5px;
279*5e7646d2SAndroid Build Coastguard Worker  text-align: left;
280*5e7646d2SAndroid Build Coastguard Worker  vertical-align: top;
281*5e7646d2SAndroid Build Coastguard Worker}
282*5e7646d2SAndroid Build Coastguard Worker
283*5e7646d2SAndroid Build Coastguard WorkerDIV.summary TABLE THEAD TH {
284*5e7646d2SAndroid Build Coastguard Worker  background: #eeeeee;
285*5e7646d2SAndroid Build Coastguard Worker}
286*5e7646d2SAndroid Build Coastguard Worker
287*5e7646d2SAndroid Build Coastguard Worker/* API documentation styles... */
288*5e7646d2SAndroid Build Coastguard Workerdiv.body h1 {
289*5e7646d2SAndroid Build Coastguard Worker  font-size: 250%;
290*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
291*5e7646d2SAndroid Build Coastguard Worker  margin: 0;
292*5e7646d2SAndroid Build Coastguard Worker}
293*5e7646d2SAndroid Build Coastguard Workerdiv.body h2 {
294*5e7646d2SAndroid Build Coastguard Worker  font-size: 250%;
295*5e7646d2SAndroid Build Coastguard Worker  margin-top: 1.5em;
296*5e7646d2SAndroid Build Coastguard Worker}
297*5e7646d2SAndroid Build Coastguard Workerdiv.body h3 {
298*5e7646d2SAndroid Build Coastguard Worker  font-size: 150%;
299*5e7646d2SAndroid Build Coastguard Worker  margin-bottom: 0.5em;
300*5e7646d2SAndroid Build Coastguard Worker  margin-top: 1.5em;
301*5e7646d2SAndroid Build Coastguard Worker}
302*5e7646d2SAndroid Build Coastguard Workerdiv.body h4 {
303*5e7646d2SAndroid Build Coastguard Worker  font-size: 110%;
304*5e7646d2SAndroid Build Coastguard Worker  margin-bottom: 0.5em;
305*5e7646d2SAndroid Build Coastguard Worker  margin-top: 1.5em;
306*5e7646d2SAndroid Build Coastguard Worker}
307*5e7646d2SAndroid Build Coastguard Workerdiv.body h5 {
308*5e7646d2SAndroid Build Coastguard Worker  font-size: 100%;
309*5e7646d2SAndroid Build Coastguard Worker  margin-bottom: 0.5em;
310*5e7646d2SAndroid Build Coastguard Worker  margin-top: 1.5em;
311*5e7646d2SAndroid Build Coastguard Worker}
312*5e7646d2SAndroid Build Coastguard Workerdiv.contents {
313*5e7646d2SAndroid Build Coastguard Worker  background: #e8e8e8;
314*5e7646d2SAndroid Build Coastguard Worker  border: solid thin black;
315*5e7646d2SAndroid Build Coastguard Worker  padding: 10px;
316*5e7646d2SAndroid Build Coastguard Worker}
317*5e7646d2SAndroid Build Coastguard Workerdiv.contents h1 {
318*5e7646d2SAndroid Build Coastguard Worker  font-size: 110%;
319*5e7646d2SAndroid Build Coastguard Worker}
320*5e7646d2SAndroid Build Coastguard Workerdiv.contents h2 {
321*5e7646d2SAndroid Build Coastguard Worker  font-size: 100%;
322*5e7646d2SAndroid Build Coastguard Worker}
323*5e7646d2SAndroid Build Coastguard Workerdiv.contents ul.contents {
324*5e7646d2SAndroid Build Coastguard Worker  font-size: 80%;
325*5e7646d2SAndroid Build Coastguard Worker}
326*5e7646d2SAndroid Build Coastguard Worker.class {
327*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
328*5e7646d2SAndroid Build Coastguard Worker}
329*5e7646d2SAndroid Build Coastguard Worker.constants {
330*5e7646d2SAndroid Build Coastguard Worker}
331*5e7646d2SAndroid Build Coastguard Worker.description {
332*5e7646d2SAndroid Build Coastguard Worker  margin-top: 0.5em;
333*5e7646d2SAndroid Build Coastguard Worker}
334*5e7646d2SAndroid Build Coastguard Worker.discussion {
335*5e7646d2SAndroid Build Coastguard Worker}
336*5e7646d2SAndroid Build Coastguard Worker.enumeration {
337*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
338*5e7646d2SAndroid Build Coastguard Worker}
339*5e7646d2SAndroid Build Coastguard Worker.function {
340*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
341*5e7646d2SAndroid Build Coastguard Worker  margin-bottom: 0;
342*5e7646d2SAndroid Build Coastguard Worker}
343*5e7646d2SAndroid Build Coastguard Worker.members {
344*5e7646d2SAndroid Build Coastguard Worker}
345*5e7646d2SAndroid Build Coastguard Worker.method {
346*5e7646d2SAndroid Build Coastguard Worker}
347*5e7646d2SAndroid Build Coastguard Worker.parameters {
348*5e7646d2SAndroid Build Coastguard Worker}
349*5e7646d2SAndroid Build Coastguard Worker.returnvalue {
350*5e7646d2SAndroid Build Coastguard Worker}
351*5e7646d2SAndroid Build Coastguard Worker.struct {
352*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
353*5e7646d2SAndroid Build Coastguard Worker}
354*5e7646d2SAndroid Build Coastguard Worker.typedef {
355*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
356*5e7646d2SAndroid Build Coastguard Worker}
357*5e7646d2SAndroid Build Coastguard Worker.union {
358*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
359*5e7646d2SAndroid Build Coastguard Worker}
360*5e7646d2SAndroid Build Coastguard Worker.variable {
361*5e7646d2SAndroid Build Coastguard Worker}
362*5e7646d2SAndroid Build Coastguard Workerh1, h2, h3, h4, h5, h6 {
363*5e7646d2SAndroid Build Coastguard Worker  page-break-inside: avoid;
364*5e7646d2SAndroid Build Coastguard Worker}
365*5e7646d2SAndroid Build Coastguard Workerblockquote {
366*5e7646d2SAndroid Build Coastguard Worker  border: solid thin gray;
367*5e7646d2SAndroid Build Coastguard Worker  box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
368*5e7646d2SAndroid Build Coastguard Worker  padding: 10px 10px 0px;
369*5e7646d2SAndroid Build Coastguard Worker  page-break-inside: avoid;
370*5e7646d2SAndroid Build Coastguard Worker}
371*5e7646d2SAndroid Build Coastguard Workerp code, li code, p.code, pre, ul.code li {
372*5e7646d2SAndroid Build Coastguard Worker  background: rgba(127,127,127,0.1);
373*5e7646d2SAndroid Build Coastguard Worker  border: thin dotted gray;
374*5e7646d2SAndroid Build Coastguard Worker  font-family: monospace;
375*5e7646d2SAndroid Build Coastguard Worker  hyphens: manual;
376*5e7646d2SAndroid Build Coastguard Worker  -webkit-hyphens: manual;
377*5e7646d2SAndroid Build Coastguard Worker  page-break-inside: avoid;
378*5e7646d2SAndroid Build Coastguard Worker}
379*5e7646d2SAndroid Build Coastguard Workerp.code, pre, ul.code li {
380*5e7646d2SAndroid Build Coastguard Worker  padding: 10px;
381*5e7646d2SAndroid Build Coastguard Worker}
382*5e7646d2SAndroid Build Coastguard Workerp code, li code {
383*5e7646d2SAndroid Build Coastguard Worker  padding: 2px 5px;
384*5e7646d2SAndroid Build Coastguard Worker}
385*5e7646d2SAndroid Build Coastguard Workera:link, a:visited {
386*5e7646d2SAndroid Build Coastguard Worker  text-decoration: none;
387*5e7646d2SAndroid Build Coastguard Worker}
388*5e7646d2SAndroid Build Coastguard Workerspan.info {
389*5e7646d2SAndroid Build Coastguard Worker  background: black;
390*5e7646d2SAndroid Build Coastguard Worker  border: solid thin black;
391*5e7646d2SAndroid Build Coastguard Worker  color: white;
392*5e7646d2SAndroid Build Coastguard Worker  font-size: 80%;
393*5e7646d2SAndroid Build Coastguard Worker  font-style: italic;
394*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
395*5e7646d2SAndroid Build Coastguard Worker  white-space: nowrap;
396*5e7646d2SAndroid Build Coastguard Worker}
397*5e7646d2SAndroid Build Coastguard Workerh2 span.info, h3 span.info, h4 span.info {
398*5e7646d2SAndroid Build Coastguard Worker  border-radius: 10px;
399*5e7646d2SAndroid Build Coastguard Worker  float: right;
400*5e7646d2SAndroid Build Coastguard Worker  font-size: 80%;
401*5e7646d2SAndroid Build Coastguard Worker  padding: 3px 6px;
402*5e7646d2SAndroid Build Coastguard Worker}
403*5e7646d2SAndroid Build Coastguard Workerh2.title span.info, h3.title span.info, h4.title span.info {
404*5e7646d2SAndroid Build Coastguard Worker  border-bottom-left-radius: 0px;
405*5e7646d2SAndroid Build Coastguard Worker  border-bottom-right-radius: 0px;
406*5e7646d2SAndroid Build Coastguard Worker}
407*5e7646d2SAndroid Build Coastguard Workerh2.title span.info {
408*5e7646d2SAndroid Build Coastguard Worker  padding: 4px 6px;
409*5e7646d2SAndroid Build Coastguard Worker}
410*5e7646d2SAndroid Build Coastguard Workerul.code, ul.contents, ul.subcontents {
411*5e7646d2SAndroid Build Coastguard Worker  list-style-type: none;
412*5e7646d2SAndroid Build Coastguard Worker  margin: 0;
413*5e7646d2SAndroid Build Coastguard Worker  padding-left: 0;
414*5e7646d2SAndroid Build Coastguard Worker}
415*5e7646d2SAndroid Build Coastguard Workerul.code li {
416*5e7646d2SAndroid Build Coastguard Worker  margin: 0;
417*5e7646d2SAndroid Build Coastguard Worker}
418*5e7646d2SAndroid Build Coastguard Workerul.contents > li {
419*5e7646d2SAndroid Build Coastguard Worker  margin-top: 1em;
420*5e7646d2SAndroid Build Coastguard Worker}
421*5e7646d2SAndroid Build Coastguard Workerul.contents li ul.code, ul.contents li ul.subcontents {
422*5e7646d2SAndroid Build Coastguard Worker  padding-left: 2em;
423*5e7646d2SAndroid Build Coastguard Worker}
424*5e7646d2SAndroid Build Coastguard Workertable.list {
425*5e7646d2SAndroid Build Coastguard Worker  border-collapse: collapse;
426*5e7646d2SAndroid Build Coastguard Worker  width: 100%;
427*5e7646d2SAndroid Build Coastguard Worker}
428*5e7646d2SAndroid Build Coastguard Workertable.list tr:nth-child(even) {
429*5e7646d2SAndroid Build Coastguard Worker  background: rgba(127,127,127,0.1);]n}
430*5e7646d2SAndroid Build Coastguard Workertable.list th {
431*5e7646d2SAndroid Build Coastguard Worker  border-right: 2px solid gray;
432*5e7646d2SAndroid Build Coastguard Worker  font-family: monospace;
433*5e7646d2SAndroid Build Coastguard Worker  padding: 5px 10px 5px 2px;
434*5e7646d2SAndroid Build Coastguard Worker  text-align: right;
435*5e7646d2SAndroid Build Coastguard Worker  vertical-align: top;
436*5e7646d2SAndroid Build Coastguard Worker}
437*5e7646d2SAndroid Build Coastguard Workertable.list td {
438*5e7646d2SAndroid Build Coastguard Worker  padding: 5px 2px 5px 10px;
439*5e7646d2SAndroid Build Coastguard Worker  text-align: left;
440*5e7646d2SAndroid Build Coastguard Worker  vertical-align: top;
441*5e7646d2SAndroid Build Coastguard Worker}
442*5e7646d2SAndroid Build Coastguard Workerh1.title {
443*5e7646d2SAndroid Build Coastguard Worker}
444*5e7646d2SAndroid Build Coastguard Workerh2.title {
445*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px black;
446*5e7646d2SAndroid Build Coastguard Worker}
447*5e7646d2SAndroid Build Coastguard Workerh3.title {
448*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px black;
449*5e7646d2SAndroid Build Coastguard Worker}
450*5e7646d2SAndroid Build Coastguard Worker--></style>
451*5e7646d2SAndroid Build Coastguard Worker  </head>
452*5e7646d2SAndroid Build Coastguard Worker  <body>
453*5e7646d2SAndroid Build Coastguard Worker<!--
454*5e7646d2SAndroid Build Coastguard Worker  PPD API header for CUPS.
455*5e7646d2SAndroid Build Coastguard Worker
456*5e7646d2SAndroid Build Coastguard Worker  Copyright © 2008-2019 by Apple Inc.
457*5e7646d2SAndroid Build Coastguard Worker
458*5e7646d2SAndroid Build Coastguard Worker  Licensed under Apache License v2.0.  See the file "LICENSE" for more
459*5e7646d2SAndroid Build Coastguard Worker  information.
460*5e7646d2SAndroid Build Coastguard Worker-->
461*5e7646d2SAndroid Build Coastguard Worker
462*5e7646d2SAndroid Build Coastguard Worker<h1 class='title'>PPD API (DEPRECATED)</h1>
463*5e7646d2SAndroid Build Coastguard Worker
464*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b>
465*5e7646d2SAndroid Build Coastguard Worker
466*5e7646d2SAndroid Build Coastguard Worker<p>The PPD API was deprecated in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="cupspm.html">CUPS Programming Manual</a> documentation. These functions will be removed in a future release of CUPS.</p>
467*5e7646d2SAndroid Build Coastguard Worker</blockquote>
468*5e7646d2SAndroid Build Coastguard Worker
469*5e7646d2SAndroid Build Coastguard Worker<div class='summary'><table summary='General Information'>
470*5e7646d2SAndroid Build Coastguard Worker<thead>
471*5e7646d2SAndroid Build Coastguard Worker<tr>
472*5e7646d2SAndroid Build Coastguard Worker	<th>Header</th>
473*5e7646d2SAndroid Build Coastguard Worker	<th>cups/ppd.h</th>
474*5e7646d2SAndroid Build Coastguard Worker</tr>
475*5e7646d2SAndroid Build Coastguard Worker</thead>
476*5e7646d2SAndroid Build Coastguard Worker<tbody>
477*5e7646d2SAndroid Build Coastguard Worker<tr>
478*5e7646d2SAndroid Build Coastguard Worker	<th>Library</th>
479*5e7646d2SAndroid Build Coastguard Worker	<td>-lcups</td>
480*5e7646d2SAndroid Build Coastguard Worker</tr>
481*5e7646d2SAndroid Build Coastguard Worker<tr>
482*5e7646d2SAndroid Build Coastguard Worker	<th>See Also</th>
483*5e7646d2SAndroid Build Coastguard Worker	<td>Programming: <a href='api-overview.html' target='_top'>Introduction to CUPS Programming</a><br>
484*5e7646d2SAndroid Build Coastguard Worker	Programming: <a href='cupspm.html' target='_top'>CUPS Programming Manual</a><br>
485*5e7646d2SAndroid Build Coastguard Worker	Specifications: <a href='spec-ppd.html' target='_top'>CUPS PPD Extensions</a></td>
486*5e7646d2SAndroid Build Coastguard Worker</tr>
487*5e7646d2SAndroid Build Coastguard Worker</tbody>
488*5e7646d2SAndroid Build Coastguard Worker</table></div>
489*5e7646d2SAndroid Build Coastguard Worker    <div class="contents">
490*5e7646d2SAndroid Build Coastguard Worker      <h2 class="title">Contents</h2>
491*5e7646d2SAndroid Build Coastguard Worker      <ul class="contents">
492*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#OVERVIEW">Overview</a><ul class="subcontents">
493*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#LOADING">Loading a PPD File</a></li>
494*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#OPTIONS_AND_GROUPS">Options and Groups</a></li>
495*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#CONSTRAINTS">Constraints</a></li>
496*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#PAGE_SIZES">Page Sizes</a></li>
497*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ATTRIBUTES">Attributes</a></li>
498*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
499*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#FUNCTIONS">Functions</a><ul class="subcontents">
500*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetConflicts">cupsGetConflicts</a></li>
501*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetPPD">cupsGetPPD</a></li>
502*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetPPD2">cupsGetPPD2</a></li>
503*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetPPD3">cupsGetPPD3</a></li>
504*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetServerPPD">cupsGetServerPPD</a></li>
505*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsMarkOptions">cupsMarkOptions</a></li>
506*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></li>
507*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsResolveConflicts">cupsResolveConflicts</a></li>
508*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdCollect">ppdCollect</a></li>
509*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdCollect2">ppdCollect2</a></li>
510*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdConflicts">ppdConflicts</a></li>
511*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdEmit">ppdEmit</a></li>
512*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdEmitAfterOrder">ppdEmitAfterOrder</a></li>
513*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdEmitFd">ppdEmitFd</a></li>
514*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdEmitJCL">ppdEmitJCL</a></li>
515*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdEmitJCLEnd">ppdEmitJCLEnd</a></li>
516*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdEmitString">ppdEmitString</a></li>
517*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdFindAttr">ppdFindAttr</a></li>
518*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdFindChoice">ppdFindChoice</a></li>
519*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdFindCustomOption">ppdFindCustomOption</a></li>
520*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdFindCustomParam">ppdFindCustomParam</a></li>
521*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdFindMarkedChoice">ppdFindMarkedChoice</a></li>
522*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdFindNextAttr">ppdFindNextAttr</a></li>
523*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdFindOption">ppdFindOption</a></li>
524*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdFirstCustomParam">ppdFirstCustomParam</a></li>
525*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdFirstOption">ppdFirstOption</a></li>
526*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdInstallableConflict">ppdInstallableConflict</a></li>
527*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdIsMarked">ppdIsMarked</a></li>
528*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdLocalize">ppdLocalize</a></li>
529*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdLocalizeAttr">ppdLocalizeAttr</a></li>
530*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdLocalizeIPPReason">ppdLocalizeIPPReason</a></li>
531*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdLocalizeMarkerName">ppdLocalizeMarkerName</a></li>
532*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdMarkDefaults">ppdMarkDefaults</a></li>
533*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdMarkOption">ppdMarkOption</a></li>
534*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdNextCustomParam">ppdNextCustomParam</a></li>
535*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdNextOption">ppdNextOption</a></li>
536*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdPageLength">ppdPageLength</a></li>
537*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdPageSize">ppdPageSize</a></li>
538*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdPageSizeLimits">ppdPageSizeLimits</a></li>
539*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppdPageWidth">ppdPageWidth</a></li>
540*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
541*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#TYPES">Data Types</a><ul class="subcontents">
542*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_interpret_cb_t">cups_interpret_cb_t</a></li>
543*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_attr_t">ppd_attr_t</a></li>
544*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_choice_t">ppd_choice_t</a></li>
545*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_conform_t">ppd_conform_t</a></li>
546*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_const_t">ppd_const_t</a></li>
547*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_coption_t">ppd_coption_t</a></li>
548*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_cparam_t">ppd_cparam_t</a></li>
549*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_cplimit_t">ppd_cplimit_t</a></li>
550*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_cptype_t">ppd_cptype_t</a></li>
551*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_cpvalue_t">ppd_cpvalue_t</a></li>
552*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_cs_t">ppd_cs_t</a></li>
553*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_emul_t">ppd_emul_t</a></li>
554*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_file_t">ppd_file_t</a></li>
555*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_group_t">ppd_group_t</a></li>
556*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_option_t">ppd_option_t</a></li>
557*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_profile_t">ppd_profile_t</a></li>
558*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_section_t">ppd_section_t</a></li>
559*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_size_t">ppd_size_t</a></li>
560*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_status_t">ppd_status_t</a></li>
561*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_ui_t">ppd_ui_t</a></li>
562*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
563*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#STRUCTURES">Structures</a><ul class="subcontents">
564*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_attr_s">ppd_attr_s</a></li>
565*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_choice_s">ppd_choice_s</a></li>
566*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_const_s">ppd_const_s</a></li>
567*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_coption_s">ppd_coption_s</a></li>
568*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_cparam_s">ppd_cparam_s</a></li>
569*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_emul_s">ppd_emul_s</a></li>
570*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_file_s">ppd_file_s</a></li>
571*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_group_s">ppd_group_s</a></li>
572*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_option_s">ppd_option_s</a></li>
573*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_profile_s">ppd_profile_s</a></li>
574*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_size_s">ppd_size_s</a></li>
575*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
576*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#UNIONS">Unions</a><ul class="subcontents">
577*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_cplimit_u">ppd_cplimit_u</a></li>
578*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_cpvalue_u">ppd_cpvalue_u</a></li>
579*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
580*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#ENUMERATIONS">Enumerations</a><ul class="subcontents">
581*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_conform_e">ppd_conform_e</a></li>
582*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_cptype_e">ppd_cptype_e</a></li>
583*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_cs_e">ppd_cs_e</a></li>
584*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_section_e">ppd_section_e</a></li>
585*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_status_e">ppd_status_e</a></li>
586*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ppd_ui_e">ppd_ui_e</a></li>
587*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
588*5e7646d2SAndroid Build Coastguard Worker      </ul>
589*5e7646d2SAndroid Build Coastguard Worker    </div>
590*5e7646d2SAndroid Build Coastguard Worker    <div class="body">
591*5e7646d2SAndroid Build Coastguard Worker<!--
592*5e7646d2SAndroid Build Coastguard Worker  PPD API introduction for CUPS.
593*5e7646d2SAndroid Build Coastguard Worker
594*5e7646d2SAndroid Build Coastguard Worker  Copyright © 2007-2019 by Apple Inc.
595*5e7646d2SAndroid Build Coastguard Worker  Copyright © 1997-2006 by Easy Software Products, all rights reserved.
596*5e7646d2SAndroid Build Coastguard Worker
597*5e7646d2SAndroid Build Coastguard Worker  Licensed under Apache License v2.0.  See the file "LICENSE" for more
598*5e7646d2SAndroid Build Coastguard Worker  information.
599*5e7646d2SAndroid Build Coastguard Worker-->
600*5e7646d2SAndroid Build Coastguard Worker
601*5e7646d2SAndroid Build Coastguard Worker<h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
602*5e7646d2SAndroid Build Coastguard Worker
603*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b>
604*5e7646d2SAndroid Build Coastguard Worker
605*5e7646d2SAndroid Build Coastguard Worker<p>The PPD API was deprecated in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="cupspm.html">CUPS Programming Manual</a> documentation. These functions will be removed in a future release of CUPS.</p>
606*5e7646d2SAndroid Build Coastguard Worker</blockquote>
607*5e7646d2SAndroid Build Coastguard Worker
608*5e7646d2SAndroid Build Coastguard Worker<p>The CUPS PPD API provides read-only access the data in PostScript Printer
609*5e7646d2SAndroid Build Coastguard WorkerDescription ("PPD") files which are used for all printers with a driver. With
610*5e7646d2SAndroid Build Coastguard Workerit you can obtain the data necessary to display printer options to users, mark
611*5e7646d2SAndroid Build Coastguard Workeroption choices and check for conflicting choices, and output marked choices in
612*5e7646d2SAndroid Build Coastguard WorkerPostScript output. The <a href="#ppd_file_t"><code>ppd_file_t</code></a>
613*5e7646d2SAndroid Build Coastguard Workerstructure contains all of the information in a PPD file.</p>
614*5e7646d2SAndroid Build Coastguard Worker
615*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b>
616*5e7646d2SAndroid Build Coastguard Worker
617*5e7646d2SAndroid Build Coastguard Worker<p>The CUPS PPD API uses the terms "option" and "choice" instead of the Adobe
618*5e7646d2SAndroid Build Coastguard Workerterms "MainKeyword" and "OptionKeyword" to refer to specific printer options and
619*5e7646d2SAndroid Build Coastguard Workerfeatures. CUPS also treats option ("MainKeyword") and choice ("OptionKeyword")
620*5e7646d2SAndroid Build Coastguard Workervalues as case-insensitive strings, so option "InputSlot" and choice "Upper"
621*5e7646d2SAndroid Build Coastguard Workerare equivalent to "inputslot" and "upper", respectively.</p>
622*5e7646d2SAndroid Build Coastguard Worker</blockquote>
623*5e7646d2SAndroid Build Coastguard Worker
624*5e7646d2SAndroid Build Coastguard Worker
625*5e7646d2SAndroid Build Coastguard Worker<h3><a name="LOADING">Loading a PPD File</a></h3>
626*5e7646d2SAndroid Build Coastguard Worker
627*5e7646d2SAndroid Build Coastguard Worker<p>The <a href="#ppdOpenFile"><code>ppdOpenFile</code></a> function "opens" a
628*5e7646d2SAndroid Build Coastguard WorkerPPD file and loads it into memory. For example, the following code opens the
629*5e7646d2SAndroid Build Coastguard Workercurrent printer's PPD file in a CUPS filter:</p>
630*5e7646d2SAndroid Build Coastguard Worker
631*5e7646d2SAndroid Build Coastguard Worker<pre class="example">
632*5e7646d2SAndroid Build Coastguard Worker#include &lt;cups/ppd.h&gt;
633*5e7646d2SAndroid Build Coastguard Worker
634*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd = <a href="#ppdOpenFile">ppdOpenFile</a>(getenv("PPD"));
635*5e7646d2SAndroid Build Coastguard Worker</pre>
636*5e7646d2SAndroid Build Coastguard Worker
637*5e7646d2SAndroid Build Coastguard Worker<p>The return value is a pointer to a new
638*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t"><code>ppd_file_t</code></a> structure or <code>NULL</code>
639*5e7646d2SAndroid Build Coastguard Workerif the PPD file does not exist or cannot be loaded. The
640*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdClose"><code>ppdClose</code></a> function frees the memory used
641*5e7646d2SAndroid Build Coastguard Workerby the structure:</p>
642*5e7646d2SAndroid Build Coastguard Worker
643*5e7646d2SAndroid Build Coastguard Worker<pre class="example">
644*5e7646d2SAndroid Build Coastguard Worker#include &lt;cups/ppd.h&gt;
645*5e7646d2SAndroid Build Coastguard Worker
646*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd;
647*5e7646d2SAndroid Build Coastguard Worker
648*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdClose">ppdClose</a>(ppd);
649*5e7646d2SAndroid Build Coastguard Worker</pre>
650*5e7646d2SAndroid Build Coastguard Worker
651*5e7646d2SAndroid Build Coastguard Worker<p>Once closed, pointers to the <a href="#ppd_file_t"><code>ppd_file_t</code></a>
652*5e7646d2SAndroid Build Coastguard Workerstructure and any data in it will no longer be valid.</p>
653*5e7646d2SAndroid Build Coastguard Worker
654*5e7646d2SAndroid Build Coastguard Worker<h3><a name="OPTIONS_AND_GROUPS">Options and Groups</a></h3>
655*5e7646d2SAndroid Build Coastguard Worker
656*5e7646d2SAndroid Build Coastguard Worker<p>PPD files support multiple options, which are stored in arrays of
657*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_option_t"><code>ppd_option_t</code></a> and
658*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_choice_t"><code>ppd_choice_t</code></a> structures.</p>
659*5e7646d2SAndroid Build Coastguard Worker
660*5e7646d2SAndroid Build Coastguard Worker<p>Each option in turn is associated with a group stored in a
661*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_group_t"><code>ppd_group_t</code></a> structure. Groups can be
662*5e7646d2SAndroid Build Coastguard Workerspecified in the PPD file; if an option is not associated with a group
663*5e7646d2SAndroid Build Coastguard Workerthen it is put in an automatically-generated "General" group. Groups can also
664*5e7646d2SAndroid Build Coastguard Workerhave sub-groups, however CUPS currently ignores sub-groups because of past
665*5e7646d2SAndroid Build Coastguard Workerabuses of this functionality.</p>
666*5e7646d2SAndroid Build Coastguard Worker
667*5e7646d2SAndroid Build Coastguard Worker<p>Option choices are selected by marking them using one of three functions. The
668*5e7646d2SAndroid Build Coastguard Workerfirst is <a href="#ppdMarkDefaults"><code>ppdMarkDefaults</code></a> which
669*5e7646d2SAndroid Build Coastguard Workerselects all of the default options in the PPD file:</p>
670*5e7646d2SAndroid Build Coastguard Worker
671*5e7646d2SAndroid Build Coastguard Worker<pre class="example">
672*5e7646d2SAndroid Build Coastguard Worker#include &lt;cups/ppd.h&gt;
673*5e7646d2SAndroid Build Coastguard Worker
674*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd;
675*5e7646d2SAndroid Build Coastguard Worker
676*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdMarkDefaults">ppdMarkDefaults</a>(ppd);
677*5e7646d2SAndroid Build Coastguard Worker</pre>
678*5e7646d2SAndroid Build Coastguard Worker
679*5e7646d2SAndroid Build Coastguard Worker<p>The second is <a href="#ppdMarkOption"><code>ppdMarkOption</code></a>
680*5e7646d2SAndroid Build Coastguard Workerwhich selects a single option choice in the PPD file. For example, the following
681*5e7646d2SAndroid Build Coastguard Workercode selects the upper paper tray:</p>
682*5e7646d2SAndroid Build Coastguard Worker
683*5e7646d2SAndroid Build Coastguard Worker<pre class="example">
684*5e7646d2SAndroid Build Coastguard Worker#include &lt;cups/ppd.h&gt;
685*5e7646d2SAndroid Build Coastguard Worker
686*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd;
687*5e7646d2SAndroid Build Coastguard Worker
688*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdMarkOption">ppdMarkOption</a>(ppd, "InputSlot", "Upper");
689*5e7646d2SAndroid Build Coastguard Worker</pre>
690*5e7646d2SAndroid Build Coastguard Worker
691*5e7646d2SAndroid Build Coastguard Worker<p>The last function is
692*5e7646d2SAndroid Build Coastguard Worker<a href="#cupsMarkOptions"><code>cupsMarkOptions</code></a> which selects
693*5e7646d2SAndroid Build Coastguard Workermultiple option choices in the PPD file from an array of CUPS options, mapping
694*5e7646d2SAndroid Build Coastguard WorkerIPP attributes like "media" and "sides" to their corresponding PPD options. You
695*5e7646d2SAndroid Build Coastguard Workertypically use this function in a print filter with
696*5e7646d2SAndroid Build Coastguard Worker<code>cupsParseOptions</code> and
697*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdMarkDefaults"><code>ppdMarkDefaults</code></a> to select all of
698*5e7646d2SAndroid Build Coastguard Workerthe option choices needed for the job, for example:</p>
699*5e7646d2SAndroid Build Coastguard Worker
700*5e7646d2SAndroid Build Coastguard Worker<pre class="example">
701*5e7646d2SAndroid Build Coastguard Worker#include &lt;cups/ppd.h&gt;
702*5e7646d2SAndroid Build Coastguard Worker
703*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd = <a href="#ppdOpenFile">ppdOpenFile</a>(getenv("PPD"));
704*5e7646d2SAndroid Build Coastguard Workercups_option_t *options = NULL;
705*5e7646d2SAndroid Build Coastguard Workerint num_options = cupsParseOptions(argv[5], 0, &amp;options);
706*5e7646d2SAndroid Build Coastguard Worker
707*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdMarkDefaults">ppdMarkDefaults</a>(ppd);
708*5e7646d2SAndroid Build Coastguard Worker<a href="#cupsMarkOptions">cupsMarkOptions</a>(ppd, num_options, options);
709*5e7646d2SAndroid Build Coastguard WorkercupsFreeOptions(num_options, options);
710*5e7646d2SAndroid Build Coastguard Worker</pre>
711*5e7646d2SAndroid Build Coastguard Worker
712*5e7646d2SAndroid Build Coastguard Worker
713*5e7646d2SAndroid Build Coastguard Worker<h3><a name="CONSTRAINTS">Constraints</a></h3>
714*5e7646d2SAndroid Build Coastguard Worker
715*5e7646d2SAndroid Build Coastguard Worker<p>PPD files support specification of conflict conditions, called
716*5e7646d2SAndroid Build Coastguard Workerconstraints, between different options. Constraints are stored in an array of
717*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_const_t"><code>ppd_const_t</code></a> structures which specify
718*5e7646d2SAndroid Build Coastguard Workerthe options and choices that conflict with each other. The
719*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdConflicts"><code>ppdConflicts</code></a> function tells you
720*5e7646d2SAndroid Build Coastguard Workerhow many of the selected options are incompatible. Since constraints are
721*5e7646d2SAndroid Build Coastguard Workernormally specified in pairs, the returned value is typically an even number.</p>
722*5e7646d2SAndroid Build Coastguard Worker
723*5e7646d2SAndroid Build Coastguard Worker
724*5e7646d2SAndroid Build Coastguard Worker<h3><a name="PAGE_SIZES">Page Sizes</a></h3>
725*5e7646d2SAndroid Build Coastguard Worker
726*5e7646d2SAndroid Build Coastguard Worker<p>Page sizes are special options which have physical dimensions and margins
727*5e7646d2SAndroid Build Coastguard Workerassociated with them. The size information is stored in
728*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_size_t"><code>ppd_size_t</code></a> structures and is available
729*5e7646d2SAndroid Build Coastguard Workerby looking up the named size with the
730*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdPageSize"><code>ppdPageSize</code></a> function. The page size and
731*5e7646d2SAndroid Build Coastguard Workermargins are returned in units called points; there are 72 points per inch. If
732*5e7646d2SAndroid Build Coastguard Workeryou pass <code>NULL</code> for the size, the currently selected size is
733*5e7646d2SAndroid Build Coastguard Workerreturned:</p>
734*5e7646d2SAndroid Build Coastguard Worker
735*5e7646d2SAndroid Build Coastguard Worker<pre class="example">
736*5e7646d2SAndroid Build Coastguard Worker#include &lt;cups/ppd.h&gt;
737*5e7646d2SAndroid Build Coastguard Worker
738*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd;
739*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_size_t">ppd_size_t</a> *size = <a href="#ppdPageSize">ppdPageSize</a>(ppd, NULL);
740*5e7646d2SAndroid Build Coastguard Worker</pre>
741*5e7646d2SAndroid Build Coastguard Worker
742*5e7646d2SAndroid Build Coastguard Worker<p>Besides the standard page sizes listed in a PPD file, some printers
743*5e7646d2SAndroid Build Coastguard Workersupport variable or custom page sizes. Custom page sizes are supported if the
744*5e7646d2SAndroid Build Coastguard Worker<code>variables_sizes</code> member of the
745*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t"><code>ppd_file_t</code></a> structure is non-zero.
746*5e7646d2SAndroid Build Coastguard WorkerThe <code>custom_min</code>, <code>custom_max</code>, and
747*5e7646d2SAndroid Build Coastguard Worker<code>custom_margins</code> members of the
748*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t"><code>ppd_file_t</code></a> structure define the limits
749*5e7646d2SAndroid Build Coastguard Workerof the printable area. To get the resulting media size, use a page size string
750*5e7646d2SAndroid Build Coastguard Workerof the form "Custom.<I>width</I>x<I>length</I>", where "width" and "length" are
751*5e7646d2SAndroid Build Coastguard Workerin points. Custom page size names can also be specified in inches
752*5e7646d2SAndroid Build Coastguard Worker("Custom.<i>width</i>x<i>height</i>in"), centimeters
753*5e7646d2SAndroid Build Coastguard Worker("Custom.<i>width</i>x<i>height</i>cm"), or millimeters
754*5e7646d2SAndroid Build Coastguard Worker("Custom.<i>width</i>x<i>height</i>mm"):</p>
755*5e7646d2SAndroid Build Coastguard Worker
756*5e7646d2SAndroid Build Coastguard Worker<pre class="example">
757*5e7646d2SAndroid Build Coastguard Worker#include &lt;cups/ppd.h&gt;
758*5e7646d2SAndroid Build Coastguard Worker
759*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd;
760*5e7646d2SAndroid Build Coastguard Worker
761*5e7646d2SAndroid Build Coastguard Worker/* Get an 576x720 point custom page size */
762*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_size_t">ppd_size_t</a> *size = <a href="#ppdPageSize">ppdPageSize</a>(ppd, "Custom.576x720");
763*5e7646d2SAndroid Build Coastguard Worker
764*5e7646d2SAndroid Build Coastguard Worker/* Get an 8x10 inch custom page size */
765*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_size_t">ppd_size_t</a> *size = <a href="#ppdPageSize">ppdPageSize</a>(ppd, "Custom.8x10in");
766*5e7646d2SAndroid Build Coastguard Worker
767*5e7646d2SAndroid Build Coastguard Worker/* Get a 100x200 millimeter custom page size */
768*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_size_t">ppd_size_t</a> *size = <a href="#ppdPageSize">ppdPageSize</a>(ppd, "Custom.100x200mm");
769*5e7646d2SAndroid Build Coastguard Worker
770*5e7646d2SAndroid Build Coastguard Worker/* Get a 12.7x34.5 centimeter custom page size */
771*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_size_t">ppd_size_t</a> *size = <a href="#ppdPageSize">ppdPageSize</a>(ppd, "Custom.12.7x34.5cm");
772*5e7646d2SAndroid Build Coastguard Worker</pre>
773*5e7646d2SAndroid Build Coastguard Worker
774*5e7646d2SAndroid Build Coastguard Worker<p>If the PPD does not support variable page sizes, the
775*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdPageSize"><code>ppdPageSize</code></a> function will return
776*5e7646d2SAndroid Build Coastguard Worker<code>NULL</code>.</p>
777*5e7646d2SAndroid Build Coastguard Worker
778*5e7646d2SAndroid Build Coastguard Worker
779*5e7646d2SAndroid Build Coastguard Worker<h3><a name="ATTRIBUTES">Attributes</a></h3>
780*5e7646d2SAndroid Build Coastguard Worker
781*5e7646d2SAndroid Build Coastguard Worker<p>Every PPD file is composed of one or more attributes. Most of these
782*5e7646d2SAndroid Build Coastguard Workerattributes are used to define groups, options, choices, and page sizes,
783*5e7646d2SAndroid Build Coastguard Workerhowever several informational attributes may be present which you can access
784*5e7646d2SAndroid Build Coastguard Workerin your program or filter. Attributes normally look like one of the following
785*5e7646d2SAndroid Build Coastguard Workerexamples in a PPD file:</p>
786*5e7646d2SAndroid Build Coastguard Worker
787*5e7646d2SAndroid Build Coastguard Worker<pre class="example">
788*5e7646d2SAndroid Build Coastguard Worker*name: "value"
789*5e7646d2SAndroid Build Coastguard Worker*name spec: "value"
790*5e7646d2SAndroid Build Coastguard Worker*name spec/text: "value"
791*5e7646d2SAndroid Build Coastguard Worker</pre>
792*5e7646d2SAndroid Build Coastguard Worker
793*5e7646d2SAndroid Build Coastguard Worker<p>The <a href="#ppdFindAttr"><code>ppdFindAttr</code></a> and
794*5e7646d2SAndroid Build Coastguard Worker<a href="#ppdFindNextAttr"><code>ppdFindNextAttr</code></a> functions find the
795*5e7646d2SAndroid Build Coastguard Workerfirst and next instances, respectively, of the named attribute with the given
796*5e7646d2SAndroid Build Coastguard Worker"spec" string and return a <a href="#ppd_attr_t"><code>ppd_attr_t</code></a>
797*5e7646d2SAndroid Build Coastguard Workerstructure. If you provide a NULL specifier string, all attributes with the
798*5e7646d2SAndroid Build Coastguard Workergiven name will be returned. For example, the following code lists all of the
799*5e7646d2SAndroid Build Coastguard Worker<code>Product</code> attributes in a PPD file:</p>
800*5e7646d2SAndroid Build Coastguard Worker
801*5e7646d2SAndroid Build Coastguard Worker<pre class="example">
802*5e7646d2SAndroid Build Coastguard Worker#include &lt;cups/ppd.h&gt;
803*5e7646d2SAndroid Build Coastguard Worker
804*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_file_t">ppd_file_t</a> *ppd;
805*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_attr_t">ppd_attr_t</a> *attr;
806*5e7646d2SAndroid Build Coastguard Worker
807*5e7646d2SAndroid Build Coastguard Workerfor (attr = <a href="#ppdFindAttr">ppdFindAttr</a>(ppd, "Product", NULL);
808*5e7646d2SAndroid Build Coastguard Worker     attr != NULL;
809*5e7646d2SAndroid Build Coastguard Worker     attr = <a href="#ppdFindNextAttr">ppdFindNextAttr</a>(ppd, "Product", NULL))
810*5e7646d2SAndroid Build Coastguard Worker  puts(attr->value);
811*5e7646d2SAndroid Build Coastguard Worker</pre>
812*5e7646d2SAndroid Build Coastguard Worker      <h2 class="title"><a id="FUNCTIONS">Functions</a></h2>
813*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.4/macOS 10.6&#160;</span><a id="cupsGetConflicts">cupsGetConflicts</a></h3>
814*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a list of conflicting options in a marked PPD.</p>
815*5e7646d2SAndroid Build Coastguard Worker<p class="code">
816*5e7646d2SAndroid Build Coastguard Workerint cupsGetConflicts(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *option, const char *choice, cups_option_t **options);</p>
817*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
818*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
819*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
820*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file</td></tr>
821*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th>
822*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option to test</td></tr>
823*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice</th>
824*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Choice to test</td></tr>
825*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
826*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Conflicting options</td></tr>
827*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
828*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
829*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of conflicting options</p>
830*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
831*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function gets a list of options that would conflict if &quot;option&quot; and
832*5e7646d2SAndroid Build Coastguard Worker&quot;choice&quot; were marked in the PPD.  You would typically call this function
833*5e7646d2SAndroid Build Coastguard Workerafter marking the currently selected options in the PPD in order to
834*5e7646d2SAndroid Build Coastguard Workerdetermine whether a new option selection would cause a conflict.<br>
835*5e7646d2SAndroid Build Coastguard Worker<br>
836*5e7646d2SAndroid Build Coastguard WorkerThe number of conflicting options are returned with &quot;options&quot; pointing to
837*5e7646d2SAndroid Build Coastguard Workerthe conflicting options.  The returned option array must be freed using
838*5e7646d2SAndroid Build Coastguard Worker<a href="#cupsFreeOptions"><code>cupsFreeOptions</code></a>.
839*5e7646d2SAndroid Build Coastguard Worker
840*5e7646d2SAndroid Build Coastguard Worker</p>
841*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsGetPPD">cupsGetPPD</a></h3>
842*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the PPD file for a printer on the default server.</p>
843*5e7646d2SAndroid Build Coastguard Worker<p class="code">
844*5e7646d2SAndroid Build Coastguard Workerconst char *cupsGetPPD(const char *name);</p>
845*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
846*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
847*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
848*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination name</td></tr>
849*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
850*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
851*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Filename for PPD file</p>
852*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
853*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">For classes, <code>cupsGetPPD</code> returns the PPD file for the first printer
854*5e7646d2SAndroid Build Coastguard Workerin the class.<br>
855*5e7646d2SAndroid Build Coastguard Worker<br>
856*5e7646d2SAndroid Build Coastguard WorkerThe returned filename is stored in a static buffer and is overwritten with
857*5e7646d2SAndroid Build Coastguard Workereach call to <code>cupsGetPPD</code> or <a href="#cupsGetPPD2"><code>cupsGetPPD2</code></a>.  The caller &quot;owns&quot; the
858*5e7646d2SAndroid Build Coastguard Workerfile that is created and must <code>unlink</code> the returned filename.</p>
859*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.21/macOS 10.4&#160;</span><a id="cupsGetPPD2">cupsGetPPD2</a></h3>
860*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the PPD file for a printer from the specified server.</p>
861*5e7646d2SAndroid Build Coastguard Worker<p class="code">
862*5e7646d2SAndroid Build Coastguard Workerconst char *cupsGetPPD2(http_t *http, const char *name);</p>
863*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
864*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
865*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
866*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></td></tr>
867*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
868*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination name</td></tr>
869*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
870*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
871*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Filename for PPD file</p>
872*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
873*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">For classes, <code>cupsGetPPD2</code> returns the PPD file for the first printer
874*5e7646d2SAndroid Build Coastguard Workerin the class.<br>
875*5e7646d2SAndroid Build Coastguard Worker<br>
876*5e7646d2SAndroid Build Coastguard WorkerThe returned filename is stored in a static buffer and is overwritten with
877*5e7646d2SAndroid Build Coastguard Workereach call to <a href="#cupsGetPPD"><code>cupsGetPPD</code></a> or <code>cupsGetPPD2</code>.  The caller &quot;owns&quot; the
878*5e7646d2SAndroid Build Coastguard Workerfile that is created and must <code>unlink</code> the returned filename.
879*5e7646d2SAndroid Build Coastguard Worker
880*5e7646d2SAndroid Build Coastguard Worker</p>
881*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.4/macOS 10.6&#160;</span><a id="cupsGetPPD3">cupsGetPPD3</a></h3>
882*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the PPD file for a printer on the specified
883*5e7646d2SAndroid Build Coastguard Workerserver if it has changed.</p>
884*5e7646d2SAndroid Build Coastguard Worker<p class="code">
885*5e7646d2SAndroid Build Coastguard Workerhttp_status_t cupsGetPPD3(http_t *http, const char *name, time_t *modtime, char *buffer, size_t bufsize);</p>
886*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
887*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
888*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
889*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection or <code>CUPS_HTTP_DEFAULT</code></td></tr>
890*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
891*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination name</td></tr>
892*5e7646d2SAndroid Build Coastguard Worker<tr><th>modtime</th>
893*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Modification time</td></tr>
894*5e7646d2SAndroid Build Coastguard Worker<tr><th>buffer</th>
895*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Filename buffer</td></tr>
896*5e7646d2SAndroid Build Coastguard Worker<tr><th>bufsize</th>
897*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of filename buffer</td></tr>
898*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
899*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
900*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP status</p>
901*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
902*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The &quot;modtime&quot; parameter contains the modification time of any
903*5e7646d2SAndroid Build Coastguard Workerlocally-cached content and is updated with the time from the PPD file on
904*5e7646d2SAndroid Build Coastguard Workerthe server.<br>
905*5e7646d2SAndroid Build Coastguard Worker<br>
906*5e7646d2SAndroid Build Coastguard WorkerThe &quot;buffer&quot; parameter contains the local PPD filename.  If it contains
907*5e7646d2SAndroid Build Coastguard Workerthe empty string, a new temporary file is created, otherwise the existing
908*5e7646d2SAndroid Build Coastguard Workerfile will be overwritten as needed.  The caller &quot;owns&quot; the file that is
909*5e7646d2SAndroid Build Coastguard Workercreated and must <code>unlink</code> the returned filename.<br>
910*5e7646d2SAndroid Build Coastguard Worker<br>
911*5e7646d2SAndroid Build Coastguard WorkerOn success, <code>HTTP_STATUS_OK</code> is returned for a new PPD file and
912*5e7646d2SAndroid Build Coastguard Worker<code>HTTP_STATUS_NOT_MODIFIED</code> if the existing PPD file is up-to-date.  Any other
913*5e7646d2SAndroid Build Coastguard Workerstatus is an error.<br>
914*5e7646d2SAndroid Build Coastguard Worker<br>
915*5e7646d2SAndroid Build Coastguard WorkerFor classes, <code>cupsGetPPD3</code> returns the PPD file for the first printer
916*5e7646d2SAndroid Build Coastguard Workerin the class.
917*5e7646d2SAndroid Build Coastguard Worker
918*5e7646d2SAndroid Build Coastguard Worker</p>
919*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.3/macOS 10.5&#160;</span><a id="cupsGetServerPPD">cupsGetServerPPD</a></h3>
920*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get an available PPD file from the server.</p>
921*5e7646d2SAndroid Build Coastguard Worker<p class="code">
922*5e7646d2SAndroid Build Coastguard Workerchar *cupsGetServerPPD(http_t *http, const char *name);</p>
923*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
924*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
925*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
926*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></td></tr>
927*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
928*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of PPD file (&quot;ppd-name&quot;)</td></tr>
929*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
930*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
931*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Name of PPD file or <code>NULL</code> on error</p>
932*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
933*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function returns the named PPD file from the server.  The
934*5e7646d2SAndroid Build Coastguard Workerlist of available PPDs is provided by the IPP <code>CUPS_GET_PPDS</code>
935*5e7646d2SAndroid Build Coastguard Workeroperation.<br>
936*5e7646d2SAndroid Build Coastguard Worker<br>
937*5e7646d2SAndroid Build Coastguard WorkerYou must remove (unlink) the PPD file when you are finished with
938*5e7646d2SAndroid Build Coastguard Workerit. The PPD filename is stored in a static location that will be
939*5e7646d2SAndroid Build Coastguard Workeroverwritten on the next call to <a href="#cupsGetPPD"><code>cupsGetPPD</code></a>, <a href="#cupsGetPPD2"><code>cupsGetPPD2</code></a>,
940*5e7646d2SAndroid Build Coastguard Workeror <a href="#cupsGetServerPPD"><code>cupsGetServerPPD</code></a>.
941*5e7646d2SAndroid Build Coastguard Worker
942*5e7646d2SAndroid Build Coastguard Worker</p>
943*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsMarkOptions">cupsMarkOptions</a></h3>
944*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Mark command-line options in a PPD file.</p>
945*5e7646d2SAndroid Build Coastguard Worker<p class="code">
946*5e7646d2SAndroid Build Coastguard Workerint cupsMarkOptions(<a href="#ppd_file_t">ppd_file_t</a> *ppd, int num_options, cups_option_t *options);</p>
947*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
948*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
949*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
950*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file</td></tr>
951*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
952*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of options</td></tr>
953*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
954*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Options</td></tr>
955*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
956*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
957*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if conflicts exist, 0 otherwise</p>
958*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
959*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function maps the IPP &quot;finishings&quot;, &quot;media&quot;, &quot;mirror&quot;,
960*5e7646d2SAndroid Build Coastguard Worker&quot;multiple-document-handling&quot;, &quot;output-bin&quot;, &quot;print-color-mode&quot;,
961*5e7646d2SAndroid Build Coastguard Worker&quot;print-quality&quot;, &quot;printer-resolution&quot;, and &quot;sides&quot; attributes to their
962*5e7646d2SAndroid Build Coastguard Workercorresponding PPD options and choices.</p>
963*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></h3>
964*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Interpret PPD commands to create a page header.</p>
965*5e7646d2SAndroid Build Coastguard Worker<p class="code">
966*5e7646d2SAndroid Build Coastguard Workerint cupsRasterInterpretPPD(cups_page_header2_t *h, <a href="#ppd_file_t">ppd_file_t</a> *ppd, int num_options, cups_option_t *options, <a href="#cups_interpret_cb_t">cups_interpret_cb_t</a> func);</p>
967*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
968*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
969*5e7646d2SAndroid Build Coastguard Worker<tr><th>h</th>
970*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Page header to create</td></tr>
971*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
972*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file</td></tr>
973*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
974*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of options</td></tr>
975*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
976*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Options</td></tr>
977*5e7646d2SAndroid Build Coastguard Worker<tr><th>func</th>
978*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Optional page header callback (<code>NULL</code> for none)</td></tr>
979*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
980*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
981*5e7646d2SAndroid Build Coastguard Worker        <p class="description">0 on success, -1 on failure</p>
982*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
983*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function is used by raster image processing (RIP) filters like
984*5e7646d2SAndroid Build Coastguard Workercgpdftoraster and imagetoraster when writing CUPS raster data for a page.
985*5e7646d2SAndroid Build Coastguard WorkerIt is not used by raster printer driver filters which only read CUPS
986*5e7646d2SAndroid Build Coastguard Workerraster data.<br>
987*5e7646d2SAndroid Build Coastguard Worker<br>
988*5e7646d2SAndroid Build Coastguard Worker
989*5e7646d2SAndroid Build Coastguard Worker<code>cupsRasterInterpretPPD</code> does not mark the options in the PPD using
990*5e7646d2SAndroid Build Coastguard Workerthe &quot;num_options&quot; and &quot;options&quot; arguments.  Instead, mark the options with
991*5e7646d2SAndroid Build Coastguard Worker<code>cupsMarkOptions</code> and <code>ppdMarkOption</code> prior to calling it -
992*5e7646d2SAndroid Build Coastguard Workerthis allows for per-page options without manipulating the options array.<br>
993*5e7646d2SAndroid Build Coastguard Worker<br>
994*5e7646d2SAndroid Build Coastguard WorkerThe &quot;func&quot; argument specifies an optional callback function that is
995*5e7646d2SAndroid Build Coastguard Workercalled prior to the computation of the final raster data.  The function
996*5e7646d2SAndroid Build Coastguard Workercan make changes to the <a href="#cups_page_header2_t"><code>cups_page_header2_t</code></a> data as needed to use a
997*5e7646d2SAndroid Build Coastguard Workersupported raster format and then returns 0 on success and -1 if the
998*5e7646d2SAndroid Build Coastguard Workerrequested attributes cannot be supported.<br>
999*5e7646d2SAndroid Build Coastguard Worker<br>
1000*5e7646d2SAndroid Build Coastguard Worker
1001*5e7646d2SAndroid Build Coastguard Worker<code>cupsRasterInterpretPPD</code> supports a subset of the PostScript language.
1002*5e7646d2SAndroid Build Coastguard WorkerCurrently only the <code>[</code>, <code>]</code>, <code>&lt;&lt;</code>, <code>&gt;&gt;</code>, <code>{</code>,
1003*5e7646d2SAndroid Build Coastguard Worker<code>}</code>, <code>cleartomark</code>, <code>copy</code>, <code>dup</code>, <code>index</code>,
1004*5e7646d2SAndroid Build Coastguard Worker<code>pop</code>, <code>roll</code>, <code>setpagedevice</code>, and <code>stopped</code> operators
1005*5e7646d2SAndroid Build Coastguard Workerare supported.
1006*5e7646d2SAndroid Build Coastguard Worker
1007*5e7646d2SAndroid Build Coastguard Worker</p>
1008*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.4/macOS 10.6&#160;</span><a id="cupsResolveConflicts">cupsResolveConflicts</a></h3>
1009*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Resolve conflicts in a marked PPD.</p>
1010*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1011*5e7646d2SAndroid Build Coastguard Workerint cupsResolveConflicts(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *option, const char *choice, int *num_options, cups_option_t **options);</p>
1012*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1013*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1014*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1015*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file</td></tr>
1016*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th>
1017*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Newly selected option or <code>NULL</code> for none</td></tr>
1018*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice</th>
1019*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Newly selected choice or <code>NULL</code> for none</td></tr>
1020*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
1021*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of additional selected options</td></tr>
1022*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
1023*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Additional selected options</td></tr>
1024*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1025*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1026*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
1027*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1028*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function attempts to resolve any conflicts in a marked PPD, returning
1029*5e7646d2SAndroid Build Coastguard Workera list of option changes that are required to resolve them.  On input,
1030*5e7646d2SAndroid Build Coastguard Worker&quot;num_options&quot; and &quot;options&quot; contain any pending option changes that have
1031*5e7646d2SAndroid Build Coastguard Workernot yet been marked, while &quot;option&quot; and &quot;choice&quot; contain the most recent
1032*5e7646d2SAndroid Build Coastguard Workerselection which may or may not be in &quot;num_options&quot; or &quot;options&quot;.<br>
1033*5e7646d2SAndroid Build Coastguard Worker<br>
1034*5e7646d2SAndroid Build Coastguard WorkerOn successful return, &quot;num_options&quot; and &quot;options&quot; are updated to contain
1035*5e7646d2SAndroid Build Coastguard Worker&quot;option&quot; and &quot;choice&quot; along with any changes required to resolve conflicts
1036*5e7646d2SAndroid Build Coastguard Workerspecified in the PPD file and 1 is returned.<br>
1037*5e7646d2SAndroid Build Coastguard Worker<br>
1038*5e7646d2SAndroid Build Coastguard WorkerIf option conflicts cannot be resolved, &quot;num_options&quot; and &quot;options&quot; are not
1039*5e7646d2SAndroid Build Coastguard Workerchanged and 0 is returned.<br>
1040*5e7646d2SAndroid Build Coastguard Worker<br>
1041*5e7646d2SAndroid Build Coastguard WorkerWhen resolving conflicts, <code>cupsResolveConflicts</code> does not consider
1042*5e7646d2SAndroid Build Coastguard Workerchanges to the current page size (<code>media</code>, <code>PageSize</code>, and
1043*5e7646d2SAndroid Build Coastguard Worker<code>PageRegion</code>) or to the most recent option specified in &quot;option&quot;.
1044*5e7646d2SAndroid Build Coastguard WorkerThus, if the only way to resolve a conflict is to change the page size
1045*5e7646d2SAndroid Build Coastguard Workeror the option the user most recently changed, <code>cupsResolveConflicts</code>
1046*5e7646d2SAndroid Build Coastguard Workerwill return 0 to indicate it was unable to resolve the conflicts.<br>
1047*5e7646d2SAndroid Build Coastguard Worker<br>
1048*5e7646d2SAndroid Build Coastguard WorkerThe <code>cupsResolveConflicts</code> function uses one of two sources of option
1049*5e7646d2SAndroid Build Coastguard Workerconstraint information.  The preferred constraint information is defined by
1050*5e7646d2SAndroid Build Coastguard Worker<code>cupsUIConstraints</code> and <code>cupsUIResolver</code> attributes - in this
1051*5e7646d2SAndroid Build Coastguard Workercase, the PPD file provides constraint resolution actions.<br>
1052*5e7646d2SAndroid Build Coastguard Worker<br>
1053*5e7646d2SAndroid Build Coastguard WorkerThe backup constraint information is defined by the
1054*5e7646d2SAndroid Build Coastguard Worker<code>UIConstraints</code> and <code>NonUIConstraints</code> attributes.  These
1055*5e7646d2SAndroid Build Coastguard Workerconstraints are resolved algorithmically by first selecting the default
1056*5e7646d2SAndroid Build Coastguard Workerchoice for the conflicting option, then iterating over all possible choices
1057*5e7646d2SAndroid Build Coastguard Workeruntil a non-conflicting option choice is found.
1058*5e7646d2SAndroid Build Coastguard Worker
1059*5e7646d2SAndroid Build Coastguard Worker</p>
1060*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdCollect">ppdCollect</a></h3>
1061*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Collect all marked options that reside in the specified
1062*5e7646d2SAndroid Build Coastguard Workersection.</p>
1063*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1064*5e7646d2SAndroid Build Coastguard Workerint ppdCollect(<a href="#ppd_file_t">ppd_file_t</a> *ppd, <a href="#ppd_section_t">ppd_section_t</a> section, <a href="#ppd_choice_t">ppd_choice_t</a> ***choices);</p>
1065*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1066*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1067*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1068*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file data</td></tr>
1069*5e7646d2SAndroid Build Coastguard Worker<tr><th>section</th>
1070*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Section to collect</td></tr>
1071*5e7646d2SAndroid Build Coastguard Worker<tr><th>choices</th>
1072*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pointers to choices</td></tr>
1073*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1074*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1075*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of options marked</p>
1076*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1077*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The choices array should be freed using <code>free</code> when you are
1078*5e7646d2SAndroid Build Coastguard Workerfinished with it.</p>
1079*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ppdCollect2">ppdCollect2</a></h3>
1080*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Collect all marked options that reside in the
1081*5e7646d2SAndroid Build Coastguard Workerspecified section and minimum order.</p>
1082*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1083*5e7646d2SAndroid Build Coastguard Workerint ppdCollect2(<a href="#ppd_file_t">ppd_file_t</a> *ppd, <a href="#ppd_section_t">ppd_section_t</a> section, float min_order, <a href="#ppd_choice_t">ppd_choice_t</a> ***choices);</p>
1084*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1085*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1086*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1087*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file data</td></tr>
1088*5e7646d2SAndroid Build Coastguard Worker<tr><th>section</th>
1089*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Section to collect</td></tr>
1090*5e7646d2SAndroid Build Coastguard Worker<tr><th>min_order</th>
1091*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Minimum OrderDependency value</td></tr>
1092*5e7646d2SAndroid Build Coastguard Worker<tr><th>choices</th>
1093*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pointers to choices</td></tr>
1094*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1095*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1096*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of options marked</p>
1097*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1098*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The choices array should be freed using <code>free</code> when you are
1099*5e7646d2SAndroid Build Coastguard Workerfinished with it.
1100*5e7646d2SAndroid Build Coastguard Worker
1101*5e7646d2SAndroid Build Coastguard Worker</p>
1102*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdConflicts">ppdConflicts</a></h3>
1103*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Check to see if there are any conflicts among the
1104*5e7646d2SAndroid Build Coastguard Workermarked option choices.</p>
1105*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1106*5e7646d2SAndroid Build Coastguard Workerint ppdConflicts(<a href="#ppd_file_t">ppd_file_t</a> *ppd);</p>
1107*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1108*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1109*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1110*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD to check</td></tr>
1111*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1112*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1113*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of conflicts found</p>
1114*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1115*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The returned value is the same as returned by <a href="#ppdMarkOption"><code>ppdMarkOption</code></a>.</p>
1116*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdEmit">ppdEmit</a></h3>
1117*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Emit code for marked options to a file.</p>
1118*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1119*5e7646d2SAndroid Build Coastguard Workerint ppdEmit(<a href="#ppd_file_t">ppd_file_t</a> *ppd, FILE *fp, <a href="#ppd_section_t">ppd_section_t</a> section);</p>
1120*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1121*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1122*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1123*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file record</td></tr>
1124*5e7646d2SAndroid Build Coastguard Worker<tr><th>fp</th>
1125*5e7646d2SAndroid Build Coastguard Worker        <td class="description">File to write to</td></tr>
1126*5e7646d2SAndroid Build Coastguard Worker<tr><th>section</th>
1127*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Section to write</td></tr>
1128*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1129*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1130*5e7646d2SAndroid Build Coastguard Worker        <p class="description">0 on success, -1 on failure</p>
1131*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ppdEmitAfterOrder">ppdEmitAfterOrder</a></h3>
1132*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Emit a subset of the code for marked options to a file.</p>
1133*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1134*5e7646d2SAndroid Build Coastguard Workerint ppdEmitAfterOrder(<a href="#ppd_file_t">ppd_file_t</a> *ppd, FILE *fp, <a href="#ppd_section_t">ppd_section_t</a> section, int limit, float min_order);</p>
1135*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1136*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1137*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1138*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file record</td></tr>
1139*5e7646d2SAndroid Build Coastguard Worker<tr><th>fp</th>
1140*5e7646d2SAndroid Build Coastguard Worker        <td class="description">File to write to</td></tr>
1141*5e7646d2SAndroid Build Coastguard Worker<tr><th>section</th>
1142*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Section to write</td></tr>
1143*5e7646d2SAndroid Build Coastguard Worker<tr><th>limit</th>
1144*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Non-zero to use min_order</td></tr>
1145*5e7646d2SAndroid Build Coastguard Worker<tr><th>min_order</th>
1146*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Lowest OrderDependency</td></tr>
1147*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1148*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1149*5e7646d2SAndroid Build Coastguard Worker        <p class="description">0 on success, -1 on failure</p>
1150*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1151*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">When &quot;limit&quot; is non-zero, this function only emits options whose
1152*5e7646d2SAndroid Build Coastguard WorkerOrderDependency value is greater than or equal to &quot;min_order&quot;.<br>
1153*5e7646d2SAndroid Build Coastguard Worker<br>
1154*5e7646d2SAndroid Build Coastguard WorkerWhen &quot;limit&quot; is zero, this function is identical to ppdEmit().
1155*5e7646d2SAndroid Build Coastguard Worker
1156*5e7646d2SAndroid Build Coastguard Worker</p>
1157*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdEmitFd">ppdEmitFd</a></h3>
1158*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Emit code for marked options to a file.</p>
1159*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1160*5e7646d2SAndroid Build Coastguard Workerint ppdEmitFd(<a href="#ppd_file_t">ppd_file_t</a> *ppd, int fd, <a href="#ppd_section_t">ppd_section_t</a> section);</p>
1161*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1162*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1163*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1164*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file record</td></tr>
1165*5e7646d2SAndroid Build Coastguard Worker<tr><th>fd</th>
1166*5e7646d2SAndroid Build Coastguard Worker        <td class="description">File to write to</td></tr>
1167*5e7646d2SAndroid Build Coastguard Worker<tr><th>section</th>
1168*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Section to write</td></tr>
1169*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1170*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1171*5e7646d2SAndroid Build Coastguard Worker        <p class="description">0 on success, -1 on failure</p>
1172*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdEmitJCL">ppdEmitJCL</a></h3>
1173*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Emit code for JCL options to a file.</p>
1174*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1175*5e7646d2SAndroid Build Coastguard Workerint ppdEmitJCL(<a href="#ppd_file_t">ppd_file_t</a> *ppd, FILE *fp, int job_id, const char *user, const char *title);</p>
1176*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1177*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1178*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1179*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file record</td></tr>
1180*5e7646d2SAndroid Build Coastguard Worker<tr><th>fp</th>
1181*5e7646d2SAndroid Build Coastguard Worker        <td class="description">File to write to</td></tr>
1182*5e7646d2SAndroid Build Coastguard Worker<tr><th>job_id</th>
1183*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Job ID</td></tr>
1184*5e7646d2SAndroid Build Coastguard Worker<tr><th>user</th>
1185*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Username</td></tr>
1186*5e7646d2SAndroid Build Coastguard Worker<tr><th>title</th>
1187*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Title</td></tr>
1188*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1189*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1190*5e7646d2SAndroid Build Coastguard Worker        <p class="description">0 on success, -1 on failure</p>
1191*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ppdEmitJCLEnd">ppdEmitJCLEnd</a></h3>
1192*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Emit JCLEnd code to a file.</p>
1193*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1194*5e7646d2SAndroid Build Coastguard Workerint ppdEmitJCLEnd(<a href="#ppd_file_t">ppd_file_t</a> *ppd, FILE *fp);</p>
1195*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1196*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1197*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1198*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file record</td></tr>
1199*5e7646d2SAndroid Build Coastguard Worker<tr><th>fp</th>
1200*5e7646d2SAndroid Build Coastguard Worker        <td class="description">File to write to</td></tr>
1201*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1202*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1203*5e7646d2SAndroid Build Coastguard Worker        <p class="description">0 on success, -1 on failure</p>
1204*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ppdEmitString">ppdEmitString</a></h3>
1205*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a string containing the code for marked options.</p>
1206*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1207*5e7646d2SAndroid Build Coastguard Workerchar *ppdEmitString(<a href="#ppd_file_t">ppd_file_t</a> *ppd, <a href="#ppd_section_t">ppd_section_t</a> section, float min_order);</p>
1208*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1209*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1210*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1211*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file record</td></tr>
1212*5e7646d2SAndroid Build Coastguard Worker<tr><th>section</th>
1213*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Section to write</td></tr>
1214*5e7646d2SAndroid Build Coastguard Worker<tr><th>min_order</th>
1215*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Lowest OrderDependency</td></tr>
1216*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1217*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1218*5e7646d2SAndroid Build Coastguard Worker        <p class="description">String containing option code or <code>NULL</code> if there is no option code</p>
1219*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1220*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">When &quot;min_order&quot; is greater than zero, this function only includes options
1221*5e7646d2SAndroid Build Coastguard Workerwhose OrderDependency value is greater than or equal to &quot;min_order&quot;.
1222*5e7646d2SAndroid Build Coastguard WorkerOtherwise, all options in the specified section are included in the
1223*5e7646d2SAndroid Build Coastguard Workerreturned string.<br>
1224*5e7646d2SAndroid Build Coastguard Worker<br>
1225*5e7646d2SAndroid Build Coastguard WorkerThe return string is allocated on the heap and should be freed using
1226*5e7646d2SAndroid Build Coastguard Worker<code>free</code> when you are done with it.
1227*5e7646d2SAndroid Build Coastguard Worker
1228*5e7646d2SAndroid Build Coastguard Worker</p>
1229*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span><a id="ppdFindAttr">ppdFindAttr</a></h3>
1230*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Find the first matching attribute.</p>
1231*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1232*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_attr_t">ppd_attr_t</a> *ppdFindAttr(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *name, const char *spec);</p>
1233*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1234*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1235*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1236*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file data</td></tr>
1237*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
1238*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Attribute name</td></tr>
1239*5e7646d2SAndroid Build Coastguard Worker<tr><th>spec</th>
1240*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Specifier string or <code>NULL</code></td></tr>
1241*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1242*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1243*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Attribute or <code>NULL</code> if not found</p>
1244*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdFindChoice">ppdFindChoice</a></h3>
1245*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return a pointer to an option choice.</p>
1246*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1247*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_choice_t">ppd_choice_t</a> *ppdFindChoice(<a href="#ppd_option_t">ppd_option_t</a> *o, const char *choice);</p>
1248*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1249*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1250*5e7646d2SAndroid Build Coastguard Worker<tr><th>o</th>
1251*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pointer to option</td></tr>
1252*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice</th>
1253*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of choice</td></tr>
1254*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1255*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1256*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Choice pointer or <code>NULL</code></p>
1257*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ppdFindCustomOption">ppdFindCustomOption</a></h3>
1258*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Find a custom option.</p>
1259*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1260*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_coption_t">ppd_coption_t</a> *ppdFindCustomOption(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *keyword);</p>
1261*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1262*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1263*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1264*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file</td></tr>
1265*5e7646d2SAndroid Build Coastguard Worker<tr><th>keyword</th>
1266*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Custom option name</td></tr>
1267*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1268*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1269*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Custom option or NULL</p>
1270*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ppdFindCustomParam">ppdFindCustomParam</a></h3>
1271*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Find a parameter for a custom option.</p>
1272*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1273*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_cparam_t">ppd_cparam_t</a> *ppdFindCustomParam(<a href="#ppd_coption_t">ppd_coption_t</a> *opt, const char *name);</p>
1274*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1275*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1276*5e7646d2SAndroid Build Coastguard Worker<tr><th>opt</th>
1277*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Custom option</td></tr>
1278*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
1279*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Parameter name</td></tr>
1280*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1281*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1282*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Custom parameter or NULL</p>
1283*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdFindMarkedChoice">ppdFindMarkedChoice</a></h3>
1284*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the marked choice for the specified option.</p>
1285*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1286*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_choice_t">ppd_choice_t</a> *ppdFindMarkedChoice(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *option);</p>
1287*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1288*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1289*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1290*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file</td></tr>
1291*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th>
1292*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Keyword/option name</td></tr>
1293*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1294*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1295*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Pointer to choice or <code>NULL</code></p>
1296*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span><a id="ppdFindNextAttr">ppdFindNextAttr</a></h3>
1297*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Find the next matching attribute.</p>
1298*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1299*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_attr_t">ppd_attr_t</a> *ppdFindNextAttr(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *name, const char *spec);</p>
1300*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1301*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1302*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1303*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file data</td></tr>
1304*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
1305*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Attribute name</td></tr>
1306*5e7646d2SAndroid Build Coastguard Worker<tr><th>spec</th>
1307*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Specifier string or <code>NULL</code></td></tr>
1308*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1309*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1310*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Attribute or <code>NULL</code> if not found</p>
1311*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdFindOption">ppdFindOption</a></h3>
1312*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return a pointer to the specified option.</p>
1313*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1314*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_option_t">ppd_option_t</a> *ppdFindOption(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *option);</p>
1315*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1316*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1317*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1318*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file data</td></tr>
1319*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th>
1320*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option/Keyword name</td></tr>
1321*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1322*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1323*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Pointer to option or <code>NULL</code></p>
1324*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ppdFirstCustomParam">ppdFirstCustomParam</a></h3>
1325*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the first parameter for a custom option.</p>
1326*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1327*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_cparam_t">ppd_cparam_t</a> *ppdFirstCustomParam(<a href="#ppd_coption_t">ppd_coption_t</a> *opt);</p>
1328*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1329*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1330*5e7646d2SAndroid Build Coastguard Worker<tr><th>opt</th>
1331*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Custom option</td></tr>
1332*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1333*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1334*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Custom parameter or NULL</p>
1335*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ppdFirstOption">ppdFirstOption</a></h3>
1336*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the first option in the PPD file.</p>
1337*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1338*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_option_t">ppd_option_t</a> *ppdFirstOption(<a href="#ppd_file_t">ppd_file_t</a> *ppd);</p>
1339*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1340*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1341*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1342*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file</td></tr>
1343*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1344*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1345*5e7646d2SAndroid Build Coastguard Worker        <p class="description">First option or <code>NULL</code></p>
1346*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1347*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Options are returned from all groups in ascending alphanumeric order.
1348*5e7646d2SAndroid Build Coastguard Worker
1349*5e7646d2SAndroid Build Coastguard Worker</p>
1350*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.4/macOS 10.6&#160;</span><a id="ppdInstallableConflict">ppdInstallableConflict</a></h3>
1351*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Test whether an option choice conflicts with
1352*5e7646d2SAndroid Build Coastguard Workeran installable option.</p>
1353*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1354*5e7646d2SAndroid Build Coastguard Workerint ppdInstallableConflict(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *option, const char *choice);</p>
1355*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1356*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1357*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1358*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file</td></tr>
1359*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th>
1360*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option</td></tr>
1361*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice</th>
1362*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Choice</td></tr>
1363*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1364*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1365*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if conflicting, 0 if not conflicting</p>
1366*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1367*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function tests whether a particular option choice is available based
1368*5e7646d2SAndroid Build Coastguard Workeron constraints against options in the &quot;InstallableOptions&quot; group.
1369*5e7646d2SAndroid Build Coastguard Worker
1370*5e7646d2SAndroid Build Coastguard Worker</p>
1371*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdIsMarked">ppdIsMarked</a></h3>
1372*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Check to see if an option is marked.</p>
1373*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1374*5e7646d2SAndroid Build Coastguard Workerint ppdIsMarked(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *option, const char *choice);</p>
1375*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1376*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1377*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1378*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file data</td></tr>
1379*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th>
1380*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option/Keyword name</td></tr>
1381*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice</th>
1382*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Choice name</td></tr>
1383*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1384*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1385*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Non-zero if option is marked</p>
1386*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ppdLocalize">ppdLocalize</a></h3>
1387*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Localize the PPD file to the current locale.</p>
1388*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1389*5e7646d2SAndroid Build Coastguard Workerint ppdLocalize(<a href="#ppd_file_t">ppd_file_t</a> *ppd);</p>
1390*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1391*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1392*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1393*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file</td></tr>
1394*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1395*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1396*5e7646d2SAndroid Build Coastguard Worker        <p class="description">0 on success, -1 on error</p>
1397*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1398*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">All groups, options, and choices are localized, as are ICC profile
1399*5e7646d2SAndroid Build Coastguard Workerdescriptions, printer presets, and custom option parameters.  Each
1400*5e7646d2SAndroid Build Coastguard Workerlocalized string uses the UTF-8 character encoding.
1401*5e7646d2SAndroid Build Coastguard Worker
1402*5e7646d2SAndroid Build Coastguard Worker</p>
1403*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdLocalizeAttr">ppdLocalizeAttr</a></h3>
1404*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Localize an attribute.</p>
1405*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1406*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_attr_t">ppd_attr_t</a> *ppdLocalizeAttr(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *keyword, const char *spec);</p>
1407*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1408*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1409*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1410*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file</td></tr>
1411*5e7646d2SAndroid Build Coastguard Worker<tr><th>keyword</th>
1412*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Main keyword</td></tr>
1413*5e7646d2SAndroid Build Coastguard Worker<tr><th>spec</th>
1414*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option keyword or <code>NULL</code> for none</td></tr>
1415*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1416*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1417*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Localized attribute or <code>NULL</code> if none exists</p>
1418*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1419*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function uses the current locale to find the localized attribute for
1420*5e7646d2SAndroid Build Coastguard Workerthe given main and option keywords.  If no localized version of the
1421*5e7646d2SAndroid Build Coastguard Workerattribute exists for the current locale, the unlocalized version is returned.</p>
1422*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.3/macOS 10.5&#160;</span><a id="ppdLocalizeIPPReason">ppdLocalizeIPPReason</a></h3>
1423*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the localized version of a cupsIPPReason
1424*5e7646d2SAndroid Build Coastguard Workerattribute.</p>
1425*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1426*5e7646d2SAndroid Build Coastguard Workerconst char *ppdLocalizeIPPReason(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *reason, const char *scheme, char *buffer, size_t bufsize);</p>
1427*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1428*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1429*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1430*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file</td></tr>
1431*5e7646d2SAndroid Build Coastguard Worker<tr><th>reason</th>
1432*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP reason keyword to look up</td></tr>
1433*5e7646d2SAndroid Build Coastguard Worker<tr><th>scheme</th>
1434*5e7646d2SAndroid Build Coastguard Worker        <td class="description">URI scheme or NULL for text</td></tr>
1435*5e7646d2SAndroid Build Coastguard Worker<tr><th>buffer</th>
1436*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value buffer</td></tr>
1437*5e7646d2SAndroid Build Coastguard Worker<tr><th>bufsize</th>
1438*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of value buffer</td></tr>
1439*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1440*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1441*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Value or NULL if not found</p>
1442*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1443*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function uses the current locale to find the corresponding reason
1444*5e7646d2SAndroid Build Coastguard Workertext or URI from the attribute value. If &quot;scheme&quot; is NULL or &quot;text&quot;,
1445*5e7646d2SAndroid Build Coastguard Workerthe returned value contains human-readable (UTF-8) text from the translation
1446*5e7646d2SAndroid Build Coastguard Workerstring or attribute value. Otherwise the corresponding URI is returned.<br>
1447*5e7646d2SAndroid Build Coastguard Worker<br>
1448*5e7646d2SAndroid Build Coastguard WorkerIf no value of the requested scheme can be found, NULL is returned.
1449*5e7646d2SAndroid Build Coastguard Worker
1450*5e7646d2SAndroid Build Coastguard Worker</p>
1451*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.4/macOS 10.6&#160;</span><a id="ppdLocalizeMarkerName">ppdLocalizeMarkerName</a></h3>
1452*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the localized version of a marker-names
1453*5e7646d2SAndroid Build Coastguard Workerattribute value.</p>
1454*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1455*5e7646d2SAndroid Build Coastguard Workerconst char *ppdLocalizeMarkerName(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *name);</p>
1456*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1457*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1458*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1459*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file</td></tr>
1460*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
1461*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Marker name to look up</td></tr>
1462*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1463*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1464*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Value or <code>NULL</code> if not found</p>
1465*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1466*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function uses the current locale to find the corresponding name
1467*5e7646d2SAndroid Build Coastguard Workertext from the attribute value. If no localized text for the requested
1468*5e7646d2SAndroid Build Coastguard Workername can be found, <code>NULL</code> is returned.
1469*5e7646d2SAndroid Build Coastguard Worker
1470*5e7646d2SAndroid Build Coastguard Worker</p>
1471*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdMarkDefaults">ppdMarkDefaults</a></h3>
1472*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Mark all default options in the PPD file.</p>
1473*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1474*5e7646d2SAndroid Build Coastguard Workervoid ppdMarkDefaults(<a href="#ppd_file_t">ppd_file_t</a> *ppd);</p>
1475*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1476*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1477*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1478*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file record</td></tr>
1479*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1480*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdMarkOption">ppdMarkOption</a></h3>
1481*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Mark an option in a PPD file and return the number of
1482*5e7646d2SAndroid Build Coastguard Workerconflicts.</p>
1483*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1484*5e7646d2SAndroid Build Coastguard Workerint ppdMarkOption(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *option, const char *choice);</p>
1485*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1486*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1487*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1488*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file record</td></tr>
1489*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th>
1490*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Keyword</td></tr>
1491*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice</th>
1492*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option name</td></tr>
1493*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1494*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1495*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of conflicts</p>
1496*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ppdNextCustomParam">ppdNextCustomParam</a></h3>
1497*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the next parameter for a custom option.</p>
1498*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1499*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_cparam_t">ppd_cparam_t</a> *ppdNextCustomParam(<a href="#ppd_coption_t">ppd_coption_t</a> *opt);</p>
1500*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1501*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1502*5e7646d2SAndroid Build Coastguard Worker<tr><th>opt</th>
1503*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Custom option</td></tr>
1504*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1505*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1506*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Custom parameter or NULL</p>
1507*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ppdNextOption">ppdNextOption</a></h3>
1508*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the next option in the PPD file.</p>
1509*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1510*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_option_t">ppd_option_t</a> *ppdNextOption(<a href="#ppd_file_t">ppd_file_t</a> *ppd);</p>
1511*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1512*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1513*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1514*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file</td></tr>
1515*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1516*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1517*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Next option or <code>NULL</code></p>
1518*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1519*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Options are returned from all groups in ascending alphanumeric order.
1520*5e7646d2SAndroid Build Coastguard Worker
1521*5e7646d2SAndroid Build Coastguard Worker</p>
1522*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdPageLength">ppdPageLength</a></h3>
1523*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the page length for the given size.</p>
1524*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1525*5e7646d2SAndroid Build Coastguard Workerfloat ppdPageLength(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *name);</p>
1526*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1527*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1528*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1529*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file</td></tr>
1530*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
1531*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size name</td></tr>
1532*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1533*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1534*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Length of page in points or 0.0</p>
1535*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdPageSize">ppdPageSize</a></h3>
1536*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the page size record for the named size.</p>
1537*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1538*5e7646d2SAndroid Build Coastguard Worker<a href="#ppd_size_t">ppd_size_t</a> *ppdPageSize(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *name);</p>
1539*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1540*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1541*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1542*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file record</td></tr>
1543*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
1544*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size name</td></tr>
1545*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1546*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1547*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Size record for page or NULL</p>
1548*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.4/macOS 10.6&#160;</span><a id="ppdPageSizeLimits">ppdPageSizeLimits</a></h3>
1549*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the custom page size limits.</p>
1550*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1551*5e7646d2SAndroid Build Coastguard Workerint ppdPageSizeLimits(<a href="#ppd_file_t">ppd_file_t</a> *ppd, <a href="#ppd_size_t">ppd_size_t</a> *minimum, <a href="#ppd_size_t">ppd_size_t</a> *maximum);</p>
1552*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1553*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1554*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1555*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file record</td></tr>
1556*5e7646d2SAndroid Build Coastguard Worker<tr><th>minimum</th>
1557*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Minimum custom size</td></tr>
1558*5e7646d2SAndroid Build Coastguard Worker<tr><th>maximum</th>
1559*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Maximum custom size</td></tr>
1560*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1561*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1562*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if custom sizes are supported, 0 otherwise</p>
1563*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1564*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function returns the minimum and maximum custom page sizes and printable
1565*5e7646d2SAndroid Build Coastguard Workerareas based on the currently-marked (selected) options.<br>
1566*5e7646d2SAndroid Build Coastguard Worker<br>
1567*5e7646d2SAndroid Build Coastguard WorkerIf the specified PPD file does not support custom page sizes, both
1568*5e7646d2SAndroid Build Coastguard Worker&quot;minimum&quot; and &quot;maximum&quot; are filled with zeroes.
1569*5e7646d2SAndroid Build Coastguard Worker
1570*5e7646d2SAndroid Build Coastguard Worker</p>
1571*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ppdPageWidth">ppdPageWidth</a></h3>
1572*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the page width for the given size.</p>
1573*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1574*5e7646d2SAndroid Build Coastguard Workerfloat ppdPageWidth(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *name);</p>
1575*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1576*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1577*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
1578*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file record</td></tr>
1579*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
1580*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size name</td></tr>
1581*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1582*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1583*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Width of page in points or 0.0</p>
1584*5e7646d2SAndroid Build Coastguard Worker      <h2 class="title"><a id="TYPES">Data Types</a></h2>
1585*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="cups_interpret_cb_t">cups_interpret_cb_t</a></h3>
1586*5e7646d2SAndroid Build Coastguard Worker        <p class="description">cupsRasterInterpretPPD callback function</p>
1587*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1588*5e7646d2SAndroid Build Coastguard Workertypedef int (*cups_interpret_cb_t)(cups_page_header2_t *header, int preferred_bits);
1589*5e7646d2SAndroid Build Coastguard Worker</p>
1590*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_attr_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_attr_t</a></h3>
1591*5e7646d2SAndroid Build Coastguard Worker        <p class="description">PPD Attribute Structure </p>
1592*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1593*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_attr_s">ppd_attr_s</a> ppd_attr_t;
1594*5e7646d2SAndroid Build Coastguard Worker</p>
1595*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_choice_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_choice_t</a></h3>
1596*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Option choices </p>
1597*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1598*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_choice_s">ppd_choice_s</a> ppd_choice_t;
1599*5e7646d2SAndroid Build Coastguard Worker</p>
1600*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_conform_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_conform_t</a></h3>
1601*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Conformance Levels </p>
1602*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1603*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ppd_conform_e">ppd_conform_e</a> ppd_conform_t;
1604*5e7646d2SAndroid Build Coastguard Worker</p>
1605*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_const_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_const_t</a></h3>
1606*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Constraints </p>
1607*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1608*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_const_s">ppd_const_s</a> ppd_const_t;
1609*5e7646d2SAndroid Build Coastguard Worker</p>
1610*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_coption_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_coption_t</a></h3>
1611*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Custom Option </p>
1612*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1613*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_coption_s">ppd_coption_s</a> ppd_coption_t;
1614*5e7646d2SAndroid Build Coastguard Worker</p>
1615*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_cparam_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_cparam_t</a></h3>
1616*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Custom Parameter </p>
1617*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1618*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_cparam_s">ppd_cparam_s</a> ppd_cparam_t;
1619*5e7646d2SAndroid Build Coastguard Worker</p>
1620*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_cplimit_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_cplimit_t</a></h3>
1621*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Custom Parameter Limit </p>
1622*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1623*5e7646d2SAndroid Build Coastguard Workertypedef union <a href="#ppd_cplimit_u">ppd_cplimit_u</a> ppd_cplimit_t;
1624*5e7646d2SAndroid Build Coastguard Worker</p>
1625*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_cptype_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_cptype_t</a></h3>
1626*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Custom Parameter Type </p>
1627*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1628*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ppd_cptype_e">ppd_cptype_e</a> ppd_cptype_t;
1629*5e7646d2SAndroid Build Coastguard Worker</p>
1630*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_cpvalue_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_cpvalue_t</a></h3>
1631*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Custom Parameter Value </p>
1632*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1633*5e7646d2SAndroid Build Coastguard Workertypedef union <a href="#ppd_cpvalue_u">ppd_cpvalue_u</a> ppd_cpvalue_t;
1634*5e7646d2SAndroid Build Coastguard Worker</p>
1635*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_cs_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_cs_t</a></h3>
1636*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Colorspaces </p>
1637*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1638*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ppd_cs_e">ppd_cs_e</a> ppd_cs_t;
1639*5e7646d2SAndroid Build Coastguard Worker</p>
1640*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_emul_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_emul_t</a></h3>
1641*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Emulators </p>
1642*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1643*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_emul_s">ppd_emul_s</a> ppd_emul_t;
1644*5e7646d2SAndroid Build Coastguard Worker</p>
1645*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_file_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_file_t</a></h3>
1646*5e7646d2SAndroid Build Coastguard Worker        <p class="description">PPD File </p>
1647*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1648*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_file_s">ppd_file_s</a> ppd_file_t;
1649*5e7646d2SAndroid Build Coastguard Worker</p>
1650*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_group_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_group_t</a></h3>
1651*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Groups </p>
1652*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1653*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_group_s">ppd_group_s</a> ppd_group_t;
1654*5e7646d2SAndroid Build Coastguard Worker</p>
1655*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_option_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_option_t</a></h3>
1656*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Options </p>
1657*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1658*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_option_s">ppd_option_s</a> ppd_option_t;
1659*5e7646d2SAndroid Build Coastguard Worker</p>
1660*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_profile_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_profile_t</a></h3>
1661*5e7646d2SAndroid Build Coastguard Worker        <p class="description">sRGB Color Profiles </p>
1662*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1663*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_profile_s">ppd_profile_s</a> ppd_profile_t;
1664*5e7646d2SAndroid Build Coastguard Worker</p>
1665*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_section_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_section_t</a></h3>
1666*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Order dependency sections </p>
1667*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1668*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ppd_section_e">ppd_section_e</a> ppd_section_t;
1669*5e7646d2SAndroid Build Coastguard Worker</p>
1670*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_size_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_size_t</a></h3>
1671*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Page Sizes </p>
1672*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1673*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#ppd_size_s">ppd_size_s</a> ppd_size_t;
1674*5e7646d2SAndroid Build Coastguard Worker</p>
1675*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_status_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_status_t</a></h3>
1676*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Status Codes </p>
1677*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1678*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ppd_status_e">ppd_status_e</a> ppd_status_t;
1679*5e7646d2SAndroid Build Coastguard Worker</p>
1680*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ppd_ui_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_ui_t</a></h3>
1681*5e7646d2SAndroid Build Coastguard Worker        <p class="description">UI Types </p>
1682*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
1683*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ppd_ui_e">ppd_ui_e</a> ppd_ui_t;
1684*5e7646d2SAndroid Build Coastguard Worker</p>
1685*5e7646d2SAndroid Build Coastguard Worker      <h2 class="title"><a id="STRUCTURES">Structures</a></h2>
1686*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info">&#160;DEPRECATED&#160;</span><a id="ppd_attr_s">ppd_attr_s</a></h3>
1687*5e7646d2SAndroid Build Coastguard Worker        <p class="description">PPD Attribute Structure </p>
1688*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_attr_s {<br>
1689*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char name[PPD_MAX_NAME];<br>
1690*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char spec[PPD_MAX_NAME];<br>
1691*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char text[PPD_MAX_TEXT];<br>
1692*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *value;<br>
1693*5e7646d2SAndroid Build Coastguard Worker};</p>
1694*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
1695*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1696*5e7646d2SAndroid Build Coastguard Worker<tr><th>name[PPD_MAX_NAME] </th>
1697*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute (cupsXYZ)</td></tr>
1698*5e7646d2SAndroid Build Coastguard Worker<tr><th>spec[PPD_MAX_NAME] </th>
1699*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Specifier string, if any</td></tr>
1700*5e7646d2SAndroid Build Coastguard Worker<tr><th>text[PPD_MAX_TEXT] </th>
1701*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Human-readable text, if any</td></tr>
1702*5e7646d2SAndroid Build Coastguard Worker<tr><th>value </th>
1703*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value string</td></tr>
1704*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1705*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info">&#160;DEPRECATED&#160;</span><a id="ppd_choice_s">ppd_choice_s</a></h3>
1706*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Option choices </p>
1707*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_choice_s {<br>
1708*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char choice[PPD_MAX_NAME];<br>
1709*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *code;<br>
1710*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char marked;<br>
1711*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;<a href="#ppd_option_t">ppd_option_t</a> *option;<br>
1712*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char text[PPD_MAX_TEXT];<br>
1713*5e7646d2SAndroid Build Coastguard Worker};</p>
1714*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
1715*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1716*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice[PPD_MAX_NAME] </th>
1717*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Computer-readable option name</td></tr>
1718*5e7646d2SAndroid Build Coastguard Worker<tr><th>code </th>
1719*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Code to send for this option</td></tr>
1720*5e7646d2SAndroid Build Coastguard Worker<tr><th>marked </th>
1721*5e7646d2SAndroid Build Coastguard Worker        <td class="description">0 if not selected, 1 otherwise</td></tr>
1722*5e7646d2SAndroid Build Coastguard Worker<tr><th>option </th>
1723*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pointer to parent option structure</td></tr>
1724*5e7646d2SAndroid Build Coastguard Worker<tr><th>text[PPD_MAX_TEXT] </th>
1725*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Human-readable option name</td></tr>
1726*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1727*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info">&#160;DEPRECATED&#160;</span><a id="ppd_const_s">ppd_const_s</a></h3>
1728*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Constraints </p>
1729*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_const_s {<br>
1730*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char choice1[PPD_MAX_NAME];<br>
1731*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char choice2[PPD_MAX_NAME];<br>
1732*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char option1[PPD_MAX_NAME];<br>
1733*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char option2[PPD_MAX_NAME];<br>
1734*5e7646d2SAndroid Build Coastguard Worker};</p>
1735*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
1736*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1737*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice1[PPD_MAX_NAME] </th>
1738*5e7646d2SAndroid Build Coastguard Worker        <td class="description">First option/choice (blank for all)</td></tr>
1739*5e7646d2SAndroid Build Coastguard Worker<tr><th>choice2[PPD_MAX_NAME] </th>
1740*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Second option/choice (blank for all)</td></tr>
1741*5e7646d2SAndroid Build Coastguard Worker<tr><th>option1[PPD_MAX_NAME] </th>
1742*5e7646d2SAndroid Build Coastguard Worker        <td class="description">First keyword</td></tr>
1743*5e7646d2SAndroid Build Coastguard Worker<tr><th>option2[PPD_MAX_NAME] </th>
1744*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Second keyword</td></tr>
1745*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1746*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info">&#160;DEPRECATED&#160;</span><a id="ppd_coption_s">ppd_coption_s</a></h3>
1747*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Custom Option </p>
1748*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_coption_s {<br>
1749*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char keyword[PPD_MAX_NAME];<br>
1750*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int marked;<br>
1751*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;<a href="#ppd_option_t">ppd_option_t</a> *option;<br>
1752*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;cups_array_t *params;<br>
1753*5e7646d2SAndroid Build Coastguard Worker};</p>
1754*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
1755*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1756*5e7646d2SAndroid Build Coastguard Worker<tr><th>keyword[PPD_MAX_NAME] </th>
1757*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of option that is being extended...</td></tr>
1758*5e7646d2SAndroid Build Coastguard Worker<tr><th>marked </th>
1759*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Extended option is marked</td></tr>
1760*5e7646d2SAndroid Build Coastguard Worker<tr><th>option </th>
1761*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option that is being extended...</td></tr>
1762*5e7646d2SAndroid Build Coastguard Worker<tr><th>params </th>
1763*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Parameters</td></tr>
1764*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1765*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info">&#160;DEPRECATED&#160;</span><a id="ppd_cparam_s">ppd_cparam_s</a></h3>
1766*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Custom Parameter </p>
1767*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_cparam_s {<br>
1768*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;<a href="#ppd_cpvalue_t">ppd_cpvalue_t</a> current;<br>
1769*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;<a href="#ppd_cplimit_t">ppd_cplimit_t</a> minimum, maximum;<br>
1770*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char name[PPD_MAX_NAME];<br>
1771*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int order;<br>
1772*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char text[PPD_MAX_TEXT];<br>
1773*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;<a href="#ppd_cptype_t">ppd_cptype_t</a> type;<br>
1774*5e7646d2SAndroid Build Coastguard Worker};</p>
1775*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
1776*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1777*5e7646d2SAndroid Build Coastguard Worker<tr><th>current </th>
1778*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Current value</td></tr>
1779*5e7646d2SAndroid Build Coastguard Worker<tr><th>maximum </th>
1780*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Maximum value</td></tr>
1781*5e7646d2SAndroid Build Coastguard Worker<tr><th>name[PPD_MAX_NAME] </th>
1782*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Parameter name</td></tr>
1783*5e7646d2SAndroid Build Coastguard Worker<tr><th>order </th>
1784*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Order (0 to N)</td></tr>
1785*5e7646d2SAndroid Build Coastguard Worker<tr><th>text[PPD_MAX_TEXT] </th>
1786*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Human-readable text</td></tr>
1787*5e7646d2SAndroid Build Coastguard Worker<tr><th>type </th>
1788*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Parameter type</td></tr>
1789*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1790*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info">&#160;DEPRECATED&#160;</span><a id="ppd_emul_s">ppd_emul_s</a></h3>
1791*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Emulators </p>
1792*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_emul_s {<br>
1793*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char name[PPD_MAX_NAME];<br>
1794*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *start;<br>
1795*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *stop;<br>
1796*5e7646d2SAndroid Build Coastguard Worker};</p>
1797*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
1798*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1799*5e7646d2SAndroid Build Coastguard Worker<tr><th>name[PPD_MAX_NAME] </th>
1800*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Emulator name</td></tr>
1801*5e7646d2SAndroid Build Coastguard Worker<tr><th>start </th>
1802*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Code to switch to this emulation</td></tr>
1803*5e7646d2SAndroid Build Coastguard Worker<tr><th>stop </th>
1804*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Code to stop this emulation</td></tr>
1805*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1806*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info">&#160;DEPRECATED&#160;</span><a id="ppd_file_s">ppd_file_s</a></h3>
1807*5e7646d2SAndroid Build Coastguard Worker        <p class="description">PPD File </p>
1808*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_file_s {<br>
1809*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int accurate_screens;<br>
1810*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int color_device;<br>
1811*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;<a href="#ppd_cs_t">ppd_cs_t</a> colorspace;<br>
1812*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;<a href="#ppd_const_t">ppd_const_t</a> *consts;<br>
1813*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int contone_only;<br>
1814*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float custom_margins[4];<br>
1815*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float custom_max[2];<br>
1816*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float custom_min[2];<br>
1817*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char **filters;<br>
1818*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int flip_duplex;<br>
1819*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char **fonts;<br>
1820*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;<a href="#ppd_group_t">ppd_group_t</a> *groups;<br>
1821*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *jcl_begin;<br>
1822*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *jcl_end;<br>
1823*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *jcl_ps;<br>
1824*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int landscape;<br>
1825*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *lang_encoding;<br>
1826*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *lang_version;<br>
1827*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int language_level;<br>
1828*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int manual_copies;<br>
1829*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *manufacturer;<br>
1830*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int model_number;<br>
1831*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *modelname;<br>
1832*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *nickname;<br>
1833*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int num_consts;<br>
1834*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int num_filters;<br>
1835*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int num_fonts;<br>
1836*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int num_groups;<br>
1837*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int num_profiles;<br>
1838*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int num_sizes;<br>
1839*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *patches;<br>
1840*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *pcfilename;<br>
1841*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *product;<br>
1842*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;<a href="#ppd_profile_t">ppd_profile_t</a> *profiles;<br>
1843*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *protocols;<br>
1844*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *shortnickname;<br>
1845*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;<a href="#ppd_size_t">ppd_size_t</a> *sizes;<br>
1846*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int throughput;<br>
1847*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *ttrasterizer;<br>
1848*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int variable_sizes;<br>
1849*5e7646d2SAndroid Build Coastguard Worker};</p>
1850*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
1851*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1852*5e7646d2SAndroid Build Coastguard Worker<tr><th>accurate_screens </th>
1853*5e7646d2SAndroid Build Coastguard Worker        <td class="description">1 = supports accurate screens, 0 = not</td></tr>
1854*5e7646d2SAndroid Build Coastguard Worker<tr><th>color_device </th>
1855*5e7646d2SAndroid Build Coastguard Worker        <td class="description">1 = color device, 0 = grayscale</td></tr>
1856*5e7646d2SAndroid Build Coastguard Worker<tr><th>colorspace </th>
1857*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Default colorspace</td></tr>
1858*5e7646d2SAndroid Build Coastguard Worker<tr><th>consts </th>
1859*5e7646d2SAndroid Build Coastguard Worker        <td class="description">UI/Non-UI constraints</td></tr>
1860*5e7646d2SAndroid Build Coastguard Worker<tr><th>contone_only </th>
1861*5e7646d2SAndroid Build Coastguard Worker        <td class="description">1 = continuous tone only, 0 = not</td></tr>
1862*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_margins[4] </th>
1863*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Margins around page</td></tr>
1864*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_max[2] </th>
1865*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Maximum variable page size</td></tr>
1866*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_min[2] </th>
1867*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Minimum variable page size</td></tr>
1868*5e7646d2SAndroid Build Coastguard Worker<tr><th>filters </th>
1869*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Filter strings...</td></tr>
1870*5e7646d2SAndroid Build Coastguard Worker<tr><th>flip_duplex <span class="info">&#160;DEPRECATED&#160;</span></th>
1871*5e7646d2SAndroid Build Coastguard Worker        <td class="description">1 = Flip page for back sides </td></tr>
1872*5e7646d2SAndroid Build Coastguard Worker<tr><th>fonts </th>
1873*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pre-loaded fonts</td></tr>
1874*5e7646d2SAndroid Build Coastguard Worker<tr><th>groups </th>
1875*5e7646d2SAndroid Build Coastguard Worker        <td class="description">UI groups</td></tr>
1876*5e7646d2SAndroid Build Coastguard Worker<tr><th>jcl_begin </th>
1877*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Start JCL commands</td></tr>
1878*5e7646d2SAndroid Build Coastguard Worker<tr><th>jcl_end </th>
1879*5e7646d2SAndroid Build Coastguard Worker        <td class="description">End JCL commands</td></tr>
1880*5e7646d2SAndroid Build Coastguard Worker<tr><th>jcl_ps </th>
1881*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Enter PostScript interpreter</td></tr>
1882*5e7646d2SAndroid Build Coastguard Worker<tr><th>landscape </th>
1883*5e7646d2SAndroid Build Coastguard Worker        <td class="description">-90 or 90</td></tr>
1884*5e7646d2SAndroid Build Coastguard Worker<tr><th>lang_encoding </th>
1885*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Language encoding</td></tr>
1886*5e7646d2SAndroid Build Coastguard Worker<tr><th>lang_version </th>
1887*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Language version (English, Spanish, etc.)</td></tr>
1888*5e7646d2SAndroid Build Coastguard Worker<tr><th>language_level </th>
1889*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Language level of device</td></tr>
1890*5e7646d2SAndroid Build Coastguard Worker<tr><th>manual_copies </th>
1891*5e7646d2SAndroid Build Coastguard Worker        <td class="description">1 = Copies done manually, 0 = hardware</td></tr>
1892*5e7646d2SAndroid Build Coastguard Worker<tr><th>manufacturer </th>
1893*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Manufacturer name</td></tr>
1894*5e7646d2SAndroid Build Coastguard Worker<tr><th>model_number </th>
1895*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Device-specific model number</td></tr>
1896*5e7646d2SAndroid Build Coastguard Worker<tr><th>modelname </th>
1897*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Model name (general)</td></tr>
1898*5e7646d2SAndroid Build Coastguard Worker<tr><th>nickname </th>
1899*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Nickname (specific)</td></tr>
1900*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_consts </th>
1901*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of UI/Non-UI constraints</td></tr>
1902*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_filters </th>
1903*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of filters</td></tr>
1904*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_fonts </th>
1905*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of pre-loaded fonts</td></tr>
1906*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_groups </th>
1907*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of UI groups</td></tr>
1908*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_profiles <span class="info">&#160;DEPRECATED&#160;</span></th>
1909*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of sRGB color profiles </td></tr>
1910*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_sizes </th>
1911*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of page sizes</td></tr>
1912*5e7646d2SAndroid Build Coastguard Worker<tr><th>patches </th>
1913*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Patch commands to be sent to printer</td></tr>
1914*5e7646d2SAndroid Build Coastguard Worker<tr><th>pcfilename <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></th>
1915*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PCFileName string </td></tr>
1916*5e7646d2SAndroid Build Coastguard Worker<tr><th>product </th>
1917*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Product name (from PS RIP/interpreter)</td></tr>
1918*5e7646d2SAndroid Build Coastguard Worker<tr><th>profiles <span class="info">&#160;DEPRECATED&#160;</span></th>
1919*5e7646d2SAndroid Build Coastguard Worker        <td class="description">sRGB color profiles </td></tr>
1920*5e7646d2SAndroid Build Coastguard Worker<tr><th>protocols <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></th>
1921*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Protocols (BCP, TBCP) string </td></tr>
1922*5e7646d2SAndroid Build Coastguard Worker<tr><th>shortnickname </th>
1923*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Short version of nickname</td></tr>
1924*5e7646d2SAndroid Build Coastguard Worker<tr><th>sizes </th>
1925*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Page sizes</td></tr>
1926*5e7646d2SAndroid Build Coastguard Worker<tr><th>throughput </th>
1927*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pages per minute</td></tr>
1928*5e7646d2SAndroid Build Coastguard Worker<tr><th>ttrasterizer </th>
1929*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Truetype rasterizer</td></tr>
1930*5e7646d2SAndroid Build Coastguard Worker<tr><th>variable_sizes </th>
1931*5e7646d2SAndroid Build Coastguard Worker        <td class="description">1 = supports variable sizes, 0 = doesn't</td></tr>
1932*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1933*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info">&#160;DEPRECATED&#160;</span><a id="ppd_group_s">ppd_group_s</a></h3>
1934*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Groups </p>
1935*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_group_s {<br>
1936*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char text[PPD_MAX_TEXT - PPD_MAX_NAME];<br>
1937*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char name[PPD_MAX_NAME];<br>
1938*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int num_options;<br>
1939*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int num_subgroups;<br>
1940*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;<a href="#ppd_option_t">ppd_option_t</a> *options;<br>
1941*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;struct <a href="#ppd_group_s">ppd_group_s</a> *subgroups;<br>
1942*5e7646d2SAndroid Build Coastguard Worker};</p>
1943*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
1944*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1945*5e7646d2SAndroid Build Coastguard Worker<tr><th>PPD_MAX_NAME] </th>
1946*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Human-readable group name</td></tr>
1947*5e7646d2SAndroid Build Coastguard Worker<tr><th>name[PPD_MAX_NAME] <span class="info">&#160;CUPS 1.1.18/macOS 10.3&#160;</span></th>
1948*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Group name </td></tr>
1949*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options </th>
1950*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of options</td></tr>
1951*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_subgroups </th>
1952*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of sub-groups</td></tr>
1953*5e7646d2SAndroid Build Coastguard Worker<tr><th>options </th>
1954*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Options</td></tr>
1955*5e7646d2SAndroid Build Coastguard Worker<tr><th>subgroups </th>
1956*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Sub-groups (max depth = 1)</td></tr>
1957*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1958*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info">&#160;DEPRECATED&#160;</span><a id="ppd_option_s">ppd_option_s</a></h3>
1959*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Options </p>
1960*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_option_s {<br>
1961*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;<a href="#ppd_choice_t">ppd_choice_t</a> *choices;<br>
1962*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char conflicted;<br>
1963*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char defchoice[PPD_MAX_NAME];<br>
1964*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char keyword[PPD_MAX_NAME];<br>
1965*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int num_choices;<br>
1966*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float order;<br>
1967*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;<a href="#ppd_section_t">ppd_section_t</a> section;<br>
1968*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char text[PPD_MAX_TEXT];<br>
1969*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;<a href="#ppd_ui_t">ppd_ui_t</a> ui;<br>
1970*5e7646d2SAndroid Build Coastguard Worker};</p>
1971*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
1972*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1973*5e7646d2SAndroid Build Coastguard Worker<tr><th>choices </th>
1974*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option choices</td></tr>
1975*5e7646d2SAndroid Build Coastguard Worker<tr><th>conflicted </th>
1976*5e7646d2SAndroid Build Coastguard Worker        <td class="description">0 if no conflicts exist, 1 otherwise</td></tr>
1977*5e7646d2SAndroid Build Coastguard Worker<tr><th>defchoice[PPD_MAX_NAME] </th>
1978*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Default option choice</td></tr>
1979*5e7646d2SAndroid Build Coastguard Worker<tr><th>keyword[PPD_MAX_NAME] </th>
1980*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option keyword name (&quot;PageSize&quot;, etc.)</td></tr>
1981*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_choices </th>
1982*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of option choices</td></tr>
1983*5e7646d2SAndroid Build Coastguard Worker<tr><th>order </th>
1984*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Order number</td></tr>
1985*5e7646d2SAndroid Build Coastguard Worker<tr><th>section </th>
1986*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Section for command</td></tr>
1987*5e7646d2SAndroid Build Coastguard Worker<tr><th>text[PPD_MAX_TEXT] </th>
1988*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Human-readable text</td></tr>
1989*5e7646d2SAndroid Build Coastguard Worker<tr><th>ui </th>
1990*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Type of UI option</td></tr>
1991*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1992*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info">&#160;DEPRECATED&#160;</span><a id="ppd_profile_s">ppd_profile_s</a></h3>
1993*5e7646d2SAndroid Build Coastguard Worker        <p class="description">sRGB Color Profiles </p>
1994*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_profile_s {<br>
1995*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float density;<br>
1996*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float gamma;<br>
1997*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float matrix[3][3];<br>
1998*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char media_type[PPD_MAX_NAME];<br>
1999*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char resolution[PPD_MAX_NAME];<br>
2000*5e7646d2SAndroid Build Coastguard Worker};</p>
2001*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
2002*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2003*5e7646d2SAndroid Build Coastguard Worker<tr><th>density </th>
2004*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Ink density to use</td></tr>
2005*5e7646d2SAndroid Build Coastguard Worker<tr><th>gamma </th>
2006*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Gamma correction to use</td></tr>
2007*5e7646d2SAndroid Build Coastguard Worker<tr><th>matrix[3][3] </th>
2008*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Transform matrix</td></tr>
2009*5e7646d2SAndroid Build Coastguard Worker<tr><th>media_type[PPD_MAX_NAME] </th>
2010*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media type or &quot;-&quot;</td></tr>
2011*5e7646d2SAndroid Build Coastguard Worker<tr><th>resolution[PPD_MAX_NAME] </th>
2012*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Resolution or &quot;-&quot;</td></tr>
2013*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2014*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info">&#160;DEPRECATED&#160;</span><a id="ppd_size_s">ppd_size_s</a></h3>
2015*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Page Sizes </p>
2016*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct ppd_size_s {<br>
2017*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float bottom;<br>
2018*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float left;<br>
2019*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float length;<br>
2020*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int marked;<br>
2021*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char name[PPD_MAX_NAME];<br>
2022*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float right;<br>
2023*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float top;<br>
2024*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float width;<br>
2025*5e7646d2SAndroid Build Coastguard Worker};</p>
2026*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
2027*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2028*5e7646d2SAndroid Build Coastguard Worker<tr><th>bottom </th>
2029*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Bottom printable margin in points</td></tr>
2030*5e7646d2SAndroid Build Coastguard Worker<tr><th>left </th>
2031*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Left printable margin in points</td></tr>
2032*5e7646d2SAndroid Build Coastguard Worker<tr><th>length </th>
2033*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Length of media in points</td></tr>
2034*5e7646d2SAndroid Build Coastguard Worker<tr><th>marked </th>
2035*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Page size selected?</td></tr>
2036*5e7646d2SAndroid Build Coastguard Worker<tr><th>name[PPD_MAX_NAME] </th>
2037*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media size option</td></tr>
2038*5e7646d2SAndroid Build Coastguard Worker<tr><th>right </th>
2039*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Right printable margin in points</td></tr>
2040*5e7646d2SAndroid Build Coastguard Worker<tr><th>top </th>
2041*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Top printable margin in points</td></tr>
2042*5e7646d2SAndroid Build Coastguard Worker<tr><th>width </th>
2043*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Width of media in points</td></tr>
2044*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2045*5e7646d2SAndroid Build Coastguard Worker      <h2 class="title"><a id="UNIONS">Unions</a></h2>
2046*5e7646d2SAndroid Build Coastguard Worker<h3 class="union"><span class="info">&#160;DEPRECATED&#160;</span><a id="ppd_cplimit_u">ppd_cplimit_u</a></h3>
2047*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Custom Parameter Limit </p>
2048*5e7646d2SAndroid Build Coastguard Worker<p class="code">union ppd_cplimit_u {<br>
2049*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float custom_curve;<br>
2050*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int custom_int;<br>
2051*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float custom_invcurve;<br>
2052*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int custom_passcode;<br>
2053*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int custom_password;<br>
2054*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float custom_points;<br>
2055*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float custom_real;<br>
2056*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int custom_string;<br>
2057*5e7646d2SAndroid Build Coastguard Worker};</p>
2058*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
2059*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2060*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_curve </th>
2061*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Gamma value</td></tr>
2062*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_int </th>
2063*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Integer value</td></tr>
2064*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_invcurve </th>
2065*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Gamma value</td></tr>
2066*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_passcode </th>
2067*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Passcode length</td></tr>
2068*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_password </th>
2069*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Password length</td></tr>
2070*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_points </th>
2071*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Measurement value</td></tr>
2072*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_real </th>
2073*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Real value</td></tr>
2074*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_string </th>
2075*5e7646d2SAndroid Build Coastguard Worker        <td class="description">String length</td></tr>
2076*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2077*5e7646d2SAndroid Build Coastguard Worker<h3 class="union"><span class="info">&#160;DEPRECATED&#160;</span><a id="ppd_cpvalue_u">ppd_cpvalue_u</a></h3>
2078*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Custom Parameter Value </p>
2079*5e7646d2SAndroid Build Coastguard Worker<p class="code">union ppd_cpvalue_u {<br>
2080*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float custom_curve;<br>
2081*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int custom_int;<br>
2082*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float custom_invcurve;<br>
2083*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *custom_passcode;<br>
2084*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *custom_password;<br>
2085*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float custom_points;<br>
2086*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;float custom_real;<br>
2087*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *custom_string;<br>
2088*5e7646d2SAndroid Build Coastguard Worker};</p>
2089*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
2090*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2091*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_curve </th>
2092*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Gamma value</td></tr>
2093*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_int </th>
2094*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Integer value</td></tr>
2095*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_invcurve </th>
2096*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Gamma value</td></tr>
2097*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_passcode </th>
2098*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Passcode value</td></tr>
2099*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_password </th>
2100*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Password value</td></tr>
2101*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_points </th>
2102*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Measurement value</td></tr>
2103*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_real </th>
2104*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Real value</td></tr>
2105*5e7646d2SAndroid Build Coastguard Worker<tr><th>custom_string </th>
2106*5e7646d2SAndroid Build Coastguard Worker        <td class="description">String value</td></tr>
2107*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2108*5e7646d2SAndroid Build Coastguard Worker      <h2 class="title"><a id="ENUMERATIONS">Constants</a></h2>
2109*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ppd_conform_e"><span class="info">&#160;DEPRECATED&#160;</span>ppd_conform_e</a></h3>
2110*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Conformance Levels </p>
2111*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
2112*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
2113*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CONFORM_RELAXED </th>        <td class="description">Relax whitespace and control char</td></tr>
2114*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CONFORM_STRICT </th>        <td class="description">Require strict conformance</td></tr>
2115*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2116*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ppd_cptype_e"><span class="info">&#160;DEPRECATED&#160;</span>ppd_cptype_e</a></h3>
2117*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Custom Parameter Type </p>
2118*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
2119*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
2120*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CUSTOM_CURVE </th>        <td class="description">Curve value for f(x) = x^value</td></tr>
2121*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CUSTOM_INT </th>        <td class="description">Integer number value</td></tr>
2122*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CUSTOM_INVCURVE </th>        <td class="description">Curve value for f(x) = x^(1/value)</td></tr>
2123*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CUSTOM_PASSCODE </th>        <td class="description">String of (hidden) numbers</td></tr>
2124*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CUSTOM_PASSWORD </th>        <td class="description">String of (hidden) characters</td></tr>
2125*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CUSTOM_POINTS </th>        <td class="description">Measurement value in points</td></tr>
2126*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CUSTOM_REAL </th>        <td class="description">Real number value</td></tr>
2127*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CUSTOM_STRING </th>        <td class="description">String of characters</td></tr>
2128*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CUSTOM_UNKNOWN </th>        <td class="description">Unknown type (error)</td></tr>
2129*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2130*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ppd_cs_e"><span class="info">&#160;DEPRECATED&#160;</span>ppd_cs_e</a></h3>
2131*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Colorspaces </p>
2132*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
2133*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
2134*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CS_CMY </th>        <td class="description">CMY colorspace</td></tr>
2135*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CS_CMYK </th>        <td class="description">CMYK colorspace</td></tr>
2136*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CS_GRAY </th>        <td class="description">Grayscale colorspace</td></tr>
2137*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CS_N </th>        <td class="description">DeviceN colorspace</td></tr>
2138*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CS_RGB </th>        <td class="description">RGB colorspace</td></tr>
2139*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_CS_RGBK </th>        <td class="description">RGBK (K = gray) colorspace</td></tr>
2140*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2141*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ppd_section_e"><span class="info">&#160;DEPRECATED&#160;</span>ppd_section_e</a></h3>
2142*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Order dependency sections </p>
2143*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
2144*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
2145*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_ORDER_ANY </th>        <td class="description">Option code can be anywhere in the file</td></tr>
2146*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_ORDER_DOCUMENT </th>        <td class="description">... must be in the DocumentSetup section</td></tr>
2147*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_ORDER_EXIT </th>        <td class="description">... must be sent prior to the document</td></tr>
2148*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_ORDER_JCL </th>        <td class="description">... must be sent as a JCL command</td></tr>
2149*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_ORDER_PAGE </th>        <td class="description">... must be in the PageSetup section</td></tr>
2150*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_ORDER_PROLOG </th>        <td class="description">... must be in the Prolog section</td></tr>
2151*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2152*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ppd_status_e"><span class="info">&#160;DEPRECATED&#160;</span>ppd_status_e</a></h3>
2153*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Status Codes </p>
2154*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
2155*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
2156*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_ALLOC_ERROR </th>        <td class="description">Memory allocation error</td></tr>
2157*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_BAD_CLOSE_UI </th>        <td class="description">Bad CloseUI/JCLCloseUI</td></tr>
2158*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_BAD_CUSTOM_PARAM </th>        <td class="description">Bad custom parameter</td></tr>
2159*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_BAD_OPEN_GROUP </th>        <td class="description">Bad OpenGroup</td></tr>
2160*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_BAD_OPEN_UI </th>        <td class="description">Bad OpenUI/JCLOpenUI</td></tr>
2161*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_BAD_ORDER_DEPENDENCY </th>        <td class="description">Bad OrderDependency</td></tr>
2162*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_BAD_UI_CONSTRAINTS </th>        <td class="description">Bad UIConstraints</td></tr>
2163*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_BAD_VALUE </th>        <td class="description">Bad value string</td></tr>
2164*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_FILE_OPEN_ERROR </th>        <td class="description">Unable to open PPD file</td></tr>
2165*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_ILLEGAL_CHARACTER </th>        <td class="description">Illegal control character</td></tr>
2166*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_ILLEGAL_MAIN_KEYWORD </th>        <td class="description">Illegal main keyword string</td></tr>
2167*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_ILLEGAL_OPTION_KEYWORD </th>        <td class="description">Illegal option keyword string</td></tr>
2168*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_ILLEGAL_TRANSLATION </th>        <td class="description">Illegal translation string</td></tr>
2169*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_ILLEGAL_WHITESPACE </th>        <td class="description">Illegal whitespace character</td></tr>
2170*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_INTERNAL_ERROR </th>        <td class="description">Internal error</td></tr>
2171*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_LINE_TOO_LONG </th>        <td class="description">Line longer than 255 chars</td></tr>
2172*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_MISSING_ASTERISK </th>        <td class="description">Missing asterisk in column 0</td></tr>
2173*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_MISSING_CLOSE_GROUP </th>        <td class="description">Missing CloseGroup</td></tr>
2174*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_MISSING_CLOSE_UI </th>        <td class="description">Missing CloseUI/JCLCloseUI</td></tr>
2175*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_MISSING_OPTION_KEYWORD </th>        <td class="description">Missing option keyword</td></tr>
2176*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_MISSING_PPDADOBE4 </th>        <td class="description">Missing PPD-Adobe-4.x header</td></tr>
2177*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_MISSING_VALUE </th>        <td class="description">Missing value string</td></tr>
2178*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_NESTED_OPEN_GROUP </th>        <td class="description">OpenGroup without a CloseGroup first</td></tr>
2179*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_NESTED_OPEN_UI </th>        <td class="description">OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first</td></tr>
2180*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_NULL_FILE </th>        <td class="description">NULL PPD file pointer</td></tr>
2181*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_OK </th>        <td class="description">OK</td></tr>
2182*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2183*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ppd_ui_e"><span class="info">&#160;DEPRECATED&#160;</span>ppd_ui_e</a></h3>
2184*5e7646d2SAndroid Build Coastguard Worker        <p class="description">UI Types </p>
2185*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
2186*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
2187*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_UI_BOOLEAN </th>        <td class="description">True or False option</td></tr>
2188*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_UI_PICKMANY </th>        <td class="description">Pick zero or more from a list</td></tr>
2189*5e7646d2SAndroid Build Coastguard Worker        <tr><th>PPD_UI_PICKONE </th>        <td class="description">Pick one from a list</td></tr>
2190*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2191*5e7646d2SAndroid Build Coastguard Worker    </div>
2192*5e7646d2SAndroid Build Coastguard Worker  </body>
2193*5e7646d2SAndroid Build Coastguard Worker</html>
2194