1*5e7646d2SAndroid Build Coastguard Worker<!DOCTYPE html> 2*5e7646d2SAndroid Build Coastguard Worker<html> 3*5e7646d2SAndroid Build Coastguard Worker<!-- SECTION: Specifications --> 4*5e7646d2SAndroid Build Coastguard Worker <head> 5*5e7646d2SAndroid Build Coastguard Worker <title>CUPS PPD Extensions</title> 6*5e7646d2SAndroid Build Coastguard Worker <meta name="keywords" content="Specifications"> 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 extension documentation for CUPS. 455*5e7646d2SAndroid Build Coastguard Worker 456*5e7646d2SAndroid Build Coastguard Worker Copyright © 2007-2011 by Apple Inc. 457*5e7646d2SAndroid Build Coastguard Worker Copyright © 1997-2007 by Easy Software Products. 458*5e7646d2SAndroid Build Coastguard Worker 459*5e7646d2SAndroid Build Coastguard Worker Licensed under Apache License v2.0. See the file "LICENSE" for more 460*5e7646d2SAndroid Build Coastguard Worker information. 461*5e7646d2SAndroid Build Coastguard Worker--> 462*5e7646d2SAndroid Build Coastguard Worker 463*5e7646d2SAndroid Build Coastguard Worker<H1 CLASS="title">CUPS PPD Extensions</H1> 464*5e7646d2SAndroid Build Coastguard Worker 465*5e7646d2SAndroid Build Coastguard Worker<p>This specification describes the attributes and extensions that CUPS adds to <a href="http://partners.adobe.com/public/developer/en/ps/5003.PPD_Spec_v4.3.pdf" target="_blank">Adobe TechNote #5003: PostScript Printer Description File Format Specification Version 4.3</a>. PostScript Printer Description ("PPD") files describe the capabilities of each printer and are used by CUPS to support printer-specific features and intelligent filtering.</p> 466*5e7646d2SAndroid Build Coastguard Worker 467*5e7646d2SAndroid Build Coastguard Worker<div class='summary'><table summary='General Information'> 468*5e7646d2SAndroid Build Coastguard Worker<tbody> 469*5e7646d2SAndroid Build Coastguard Worker<tr> 470*5e7646d2SAndroid Build Coastguard Worker <th>See Also</th> 471*5e7646d2SAndroid Build Coastguard Worker <td>Programming: <a href='postscript-driver.html'>Developing PostScript Printer Drivers</a><br> 472*5e7646d2SAndroid Build Coastguard Worker Programming: <a href='raster-driver.html'>Developing Raster Printer Drivers</a><br> 473*5e7646d2SAndroid Build Coastguard Worker Programming: <a href='api-filter.html'>Filter and Backend Programming</a><br> 474*5e7646d2SAndroid Build Coastguard Worker Programming: <a href='ppd-compiler.html'>Introduction to the PPD Compiler</a><br> 475*5e7646d2SAndroid Build Coastguard Worker Programming: <a href='api-raster.html'>Raster API</a><br> 476*5e7646d2SAndroid Build Coastguard Worker References: <a href='ref-ppdcfile.html'>PPD Compiler Driver Information File Reference</a></td> 477*5e7646d2SAndroid Build Coastguard Worker</tr> 478*5e7646d2SAndroid Build Coastguard Worker</tbody> 479*5e7646d2SAndroid Build Coastguard Worker</table></div> 480*5e7646d2SAndroid Build Coastguard Worker <div class="contents"> 481*5e7646d2SAndroid Build Coastguard Worker <h2 class="title">Contents</h2> 482*5e7646d2SAndroid Build Coastguard Worker <ul class="contents"> 483*5e7646d2SAndroid Build Coastguard Worker <li><a href="#SYNTAX">PPD File Syntax</a></li> 484*5e7646d2SAndroid Build Coastguard Worker <li><a href="#AUTOCONFIG">Auto-Configuration</a><ul class="subcontents"> 485*5e7646d2SAndroid Build Coastguard Worker <li><a href="#APAutoSetupTool">APAutoSetupTool</a></li> 486*5e7646d2SAndroid Build Coastguard Worker <li><a href="#QUERYKEYWORD">?MainKeyword</a></li> 487*5e7646d2SAndroid Build Coastguard Worker <li><a href="#OID">OIDMainKeyword</a></li> 488*5e7646d2SAndroid Build Coastguard Worker </ul></li> 489*5e7646d2SAndroid Build Coastguard Worker <li><a href="#PROFILES">Color Profiles</a><ul class="subcontents"> 490*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsColorProfile">cupsColorProfile</a></li> 491*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsICCProfile">cupsICCProfile</a></li> 492*5e7646d2SAndroid Build Coastguard Worker <li><a href="#APCustom">Custom Color Matching Support</a></li> 493*5e7646d2SAndroid Build Coastguard Worker </ul></li> 494*5e7646d2SAndroid Build Coastguard Worker <li><a href="#CONSTRAINTS">Constraints</a><ul class="subcontents"> 495*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsUIConstraints">cupsUIConstraints</a></li> 496*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsUIResolver">cupsUIResolver</a></li> 497*5e7646d2SAndroid Build Coastguard Worker </ul></li> 498*5e7646d2SAndroid Build Coastguard Worker <li><a href="#I18N">Globalized PPD Support</a></li> 499*5e7646d2SAndroid Build Coastguard Worker <li><a href="#OPTIONS"><span class="info">CUPS 1.3/macOS 10.6</span>Custom Options</a></li> 500*5e7646d2SAndroid Build Coastguard Worker <li><a href="#RASTERPS">Writing PostScript Option Commands for Raster Drivers</a></li> 501*5e7646d2SAndroid Build Coastguard Worker <li><a href="#MEDIA">Media Keywords</a><ul class="subcontents"> 502*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsMediaQualifier2">cupsMediaQualifier2</a></li> 503*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsMediaQualifier3">cupsMediaQualifier3</a></li> 504*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsMinSize">cupsMinSize</a></li> 505*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsMaxSize">cupsMaxSize</a></li> 506*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsPageSizeCategory">cupsPageSizeCategory</a></li> 507*5e7646d2SAndroid Build Coastguard Worker </ul></li> 508*5e7646d2SAndroid Build Coastguard Worker <li><a href="#ATTRIBUTES">General Attributes</a><ul class="subcontents"> 509*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsBackSide">cupsBackSide</a></li> 510*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsCommands">cupsCommands</a></li> 511*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsEvenDuplex">cupsEvenDuplex</a></li> 512*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsFax">cupsFax</a></li> 513*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsFilter">cupsFilter</a></li> 514*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsFilter2">cupsFilter2</a></li> 515*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsFinishingTemplate">cupsFinishingTemplate</a></li> 516*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsFlipDuplex">cupsFlipDuplex</a></li> 517*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsIPPFinishings">cupsIPPFinishings</a></li> 518*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsIPPReason">cupsIPPReason</a></li> 519*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsIPPSupplies">cupsIPPSupplies</a></li> 520*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsJobAccountId">cupsJobAccountId</a></li> 521*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsJobAccountingUserId">cupsJobAccountingUserId</a></li> 522*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsJobPassword">cupsJobPassword</a></li> 523*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsLanguages">cupsLanguages</a></li> 524*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsMandatory">cupsMandatory</a></li> 525*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsManualCopies">cupsManualCopies</a></li> 526*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsMarkerName">cupsMarkerName</a></li> 527*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsMarkerNotice">cupsMarkerNotice</a></li> 528*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsMaxCopies">cupsMaxCopies</a></li> 529*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsModelNumber">cupsModelNumber</a></li> 530*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsPJLCharset">cupsPJLCharset</a></li> 531*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsPJLDisplay">cupsPJLDisplay</a></li> 532*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsPortMonitor">cupsPortMonitor</a></li> 533*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsPreFilter">cupsPreFilter</a></li> 534*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsPrintQuality">cupsPrintQuality</a></li> 535*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsSingleFile">cupsSingleFile</a></li> 536*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsSNMPSupplies">cupsSNMPSupplies</a></li> 537*5e7646d2SAndroid Build Coastguard Worker <li><a href="#cupsVersion">cupsVersion</a></li> 538*5e7646d2SAndroid Build Coastguard Worker <li><a href="#JCLToPDFInterpreter">JCLToPDFInterpreter</a></li> 539*5e7646d2SAndroid Build Coastguard Worker </ul></li> 540*5e7646d2SAndroid Build Coastguard Worker <li><a href="#MACOSX">macOS Attributes</a><ul class="subcontents"> 541*5e7646d2SAndroid Build Coastguard Worker <li><a href="#APDialogExtension">APDialogExtension</a></li> 542*5e7646d2SAndroid Build Coastguard Worker <li><a href="#APDuplexRequiresFlippedMargin">APDuplexRequiresFlippedMargin</a></li> 543*5e7646d2SAndroid Build Coastguard Worker <li><a href="#APHelpBook">APHelpBook</a></li> 544*5e7646d2SAndroid Build Coastguard Worker <li><a href="#APICADriver">APICADriver</a></li> 545*5e7646d2SAndroid Build Coastguard Worker <li><a href="#APPrinterIconPath">APPrinterIconPath</a></li> 546*5e7646d2SAndroid Build Coastguard Worker <li><a href="#APPrinterLowInkTool">APPrinterLowInkTool</a></li> 547*5e7646d2SAndroid Build Coastguard Worker <li><a href="#APPrinterPreset">APPrinterPreset</a></li> 548*5e7646d2SAndroid Build Coastguard Worker <li><a href="#APPrinterUtilityPath">APPrinterUtilityPath</a></li> 549*5e7646d2SAndroid Build Coastguard Worker <li><a href="#APScannerOnly">APScannerOnly</a></li> 550*5e7646d2SAndroid Build Coastguard Worker <li><a href="#APScanAppBundleID">APScanAppBundleID</a></li> 551*5e7646d2SAndroid Build Coastguard Worker </ul></li> 552*5e7646d2SAndroid Build Coastguard Worker <li><a href="#HISTORY">Change History</a></li> 553*5e7646d2SAndroid Build Coastguard Worker </ul> 554*5e7646d2SAndroid Build Coastguard Worker </div> 555*5e7646d2SAndroid Build Coastguard Worker <div class="body"> 556*5e7646d2SAndroid Build Coastguard Worker<h2 class='title'><a name='SYNTAX'>PPD File Syntax</a></h2> 557*5e7646d2SAndroid Build Coastguard Worker 558*5e7646d2SAndroid Build Coastguard Worker<p>The PPD format is text-based and uses lines of up to 255 characters terminated by a carriage return, linefeed, or combination of carriage return and line feed. The following ABNF definition [<a href="http://tools.ietf.org/html/rfc5234" target="_blank">RFC5234</a>] defines the general format of lines in a PPD file:</p> 559*5e7646d2SAndroid Build Coastguard Worker 560*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 561*5e7646d2SAndroid Build Coastguard WorkerPPD-FILE = HEADER +(DATA / COMMENT / LINE-END) 562*5e7646d2SAndroid Build Coastguard Worker 563*5e7646d2SAndroid Build Coastguard WorkerHEADER = "*PPD-Adobe:" *WSP DQUOTE VERSION DQUOTE LINE-END 564*5e7646d2SAndroid Build Coastguard Worker 565*5e7646d2SAndroid Build Coastguard WorkerVERSION = "4.0" / "4.1" / "4.2" / "4.3" 566*5e7646d2SAndroid Build Coastguard Worker 567*5e7646d2SAndroid Build Coastguard WorkerCOMMENT = "*%" *TCHAR LINE-END 568*5e7646d2SAndroid Build Coastguard Worker 569*5e7646d2SAndroid Build Coastguard WorkerDATA = "*" 1*KCHAR [ WSP 1*KCHAR [ "/" 1*TCHAR ] ] ":" 570*5e7646d2SAndroid Build Coastguard Worker 1*(*WSP VALUE) LINE-END 571*5e7646d2SAndroid Build Coastguard Worker 572*5e7646d2SAndroid Build Coastguard WorkerVALUE = 1*TCHAR / DQUOTE 1*SCHAR DQUOTE 573*5e7646d2SAndroid Build Coastguard Worker 574*5e7646d2SAndroid Build Coastguard WorkerKCHAR = ALPHA / DIGIT / "_" / "." / "-" 575*5e7646d2SAndroid Build Coastguard Worker 576*5e7646d2SAndroid Build Coastguard WorkerSCHAR = LINE-END / WSP / %x21.23-7E.A0-FF 577*5e7646d2SAndroid Build Coastguard Worker 578*5e7646d2SAndroid Build Coastguard WorkerTCHAR = %x20-7E.A0-FF 579*5e7646d2SAndroid Build Coastguard Worker 580*5e7646d2SAndroid Build Coastguard WorkerLINE-END = CR / LF / CR LF 581*5e7646d2SAndroid Build Coastguard Worker</pre> 582*5e7646d2SAndroid Build Coastguard Worker 583*5e7646d2SAndroid Build Coastguard Worker 584*5e7646d2SAndroid Build Coastguard Worker<h2 class='title'><a name='AUTOCONFIG'>Auto-Configuration</a></h2> 585*5e7646d2SAndroid Build Coastguard Worker 586*5e7646d2SAndroid Build Coastguard Worker<p>CUPS supports several methods of auto-configuration via PPD keywords.</p> 587*5e7646d2SAndroid Build Coastguard Worker 588*5e7646d2SAndroid Build Coastguard Worker 589*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>macOS 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3> 590*5e7646d2SAndroid Build Coastguard Worker 591*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*APAutoSetupTool: "/LibraryPrinters/vendor/filename"</p> 592*5e7646d2SAndroid Build Coastguard Worker 593*5e7646d2SAndroid Build Coastguard Worker<p>This macOS keyword defines a program that sets the default option choices. It is run when a printer is added from the <var>Add Printer</var> window or the <var>Nearby Printers</var> list in the <var>Print</var> dialog.</p> 594*5e7646d2SAndroid Build Coastguard Worker 595*5e7646d2SAndroid Build Coastguard Worker<p>The program is provided with two arguments: the printer's device URI and the PPD file to be used for the printer. The program must write an updated PPD file to stdout.</p> 596*5e7646d2SAndroid Build Coastguard Worker 597*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 598*5e7646d2SAndroid Build Coastguard Worker 599*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 600*5e7646d2SAndroid Build Coastguard Worker*% Use our setup tool when adding a printer 601*5e7646d2SAndroid Build Coastguard Worker*APAutoSetupTool: "/Library/Printers/vendor/Tools/autosetuptool" 602*5e7646d2SAndroid Build Coastguard Worker</pre> 603*5e7646d2SAndroid Build Coastguard Worker 604*5e7646d2SAndroid Build Coastguard Worker 605*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>macOS 10.2/CUPS 1.4</span><a name='QUERYKEYWORD'>?MainKeyword</a></h3> 606*5e7646d2SAndroid Build Coastguard Worker 607*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*?<i>MainKeyword</i>: "<br> 608*5e7646d2SAndroid Build Coastguard Worker PostScript query code that writes a message using the = operator...<br> 609*5e7646d2SAndroid Build Coastguard Worker"<br> 610*5e7646d2SAndroid Build Coastguard Worker*End</p> 611*5e7646d2SAndroid Build Coastguard Worker 612*5e7646d2SAndroid Build Coastguard Worker<p>The <tt>?<i>MainKeyword</i></tt> keyword defines PostScript code that determines the currently selected/enabled option keyword (choice) for the main keyword (option). It is typically used when communicating with USB, serial, Appletalk, and AppSocket (port 9100) printers.</p> 613*5e7646d2SAndroid Build Coastguard Worker 614*5e7646d2SAndroid Build Coastguard Worker<p>The PostScript code typically sends its response back using the <tt>=</tt> operator.</p> 615*5e7646d2SAndroid Build Coastguard Worker 616*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 617*5e7646d2SAndroid Build Coastguard Worker 618*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 619*5e7646d2SAndroid Build Coastguard Worker*OpenUI OptionDuplex/Duplexer Installed: Boolean 620*5e7646d2SAndroid Build Coastguard Worker*DuplexOptionDuplex: False 621*5e7646d2SAndroid Build Coastguard Worker*OptionDuplex False/Not Installed: "" 622*5e7646d2SAndroid Build Coastguard Worker*OptionDuplex True/Installed: "" 623*5e7646d2SAndroid Build Coastguard Worker 624*5e7646d2SAndroid Build Coastguard Worker<em>*% Query the printer for the presence of the duplexer option...</em> 625*5e7646d2SAndroid Build Coastguard Worker*?OptionDuplex: " 626*5e7646d2SAndroid Build Coastguard Worker currentpagedevice /Duplex known 627*5e7646d2SAndroid Build Coastguard Worker {(True)} {(False)} ifelse 628*5e7646d2SAndroid Build Coastguard Worker = flush 629*5e7646d2SAndroid Build Coastguard Worker" 630*5e7646d2SAndroid Build Coastguard Worker*End 631*5e7646d2SAndroid Build Coastguard Worker*CloseUI: OptionDuplex 632*5e7646d2SAndroid Build Coastguard Worker</pre> 633*5e7646d2SAndroid Build Coastguard Worker 634*5e7646d2SAndroid Build Coastguard Worker 635*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>macOS 10.4/CUPS 1.5</span><a name='OID'>OIDMainKeyword</a></h3> 636*5e7646d2SAndroid Build Coastguard Worker 637*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*?OID<i>MainKeyword</i>: ".n.n.n..."<br> 638*5e7646d2SAndroid Build Coastguard Worker*OID<i>MainKeyword</i> <i>OptionKeyword1</i>: "value"<br> 639*5e7646d2SAndroid Build Coastguard Worker...<br> 640*5e7646d2SAndroid Build Coastguard Worker*OID<i>MainKeyword</i> <i>OptionKeywordN</i>: "value"</p> 641*5e7646d2SAndroid Build Coastguard Worker 642*5e7646d2SAndroid Build Coastguard Worker<p>The <tt>OID<i>MainKeyword</i></tt> keyword is used to define SNMP OIDs that map to installable options. The first (query) line defines the OID to lookup on the network device. The second and subsequent keywords define a mapping from OID value to option keyword. Since SNMP is an IP-based network protocol, this method is typically only used to configure AppSocket, IPP, and LPD network printers.</p> 643*5e7646d2SAndroid Build Coastguard Worker 644*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 645*5e7646d2SAndroid Build Coastguard Worker 646*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 647*5e7646d2SAndroid Build Coastguard Worker*% Get the installed memory on the printer... 648*5e7646d2SAndroid Build Coastguard Worker*?OIDInstalledMemory: ".1.3.6.1.2.1.25.2.2.0" 649*5e7646d2SAndroid Build Coastguard Worker*OIDInstalledMemory 16MB: "16384 KBytes" 650*5e7646d2SAndroid Build Coastguard Worker*OIDInstalledMemory 32MB: "32768 KBytes" 651*5e7646d2SAndroid Build Coastguard Worker*OIDInstalledMemory 48MB: "49152 KBytes" 652*5e7646d2SAndroid Build Coastguard Worker*OIDInstalledMemory 72MB: "73728 KBytes" 653*5e7646d2SAndroid Build Coastguard Worker</pre> 654*5e7646d2SAndroid Build Coastguard Worker 655*5e7646d2SAndroid Build Coastguard Worker 656*5e7646d2SAndroid Build Coastguard Worker<h2 class='title'><a name='PROFILES'>Color Profiles</a></h2> 657*5e7646d2SAndroid Build Coastguard Worker 658*5e7646d2SAndroid Build Coastguard Worker<p>CUPS supports three types of color profiles. The first type is based on sRGB and is used by the standard CUPS raster filters and GPL Ghostscript. The second type is based on ICC profiles and is used by the Quartz-based filters on macOS. The final type is based on well-known colorspaces such as sRGB and Adobe RGB.</p> 659*5e7646d2SAndroid Build Coastguard Worker 660*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b> 661*5e7646d2SAndroid Build Coastguard Worker 662*5e7646d2SAndroid Build Coastguard Worker<p>At this time, none of the CUPS raster filters support ICC profiles. This will be addressed as time and resources permit.</p> 663*5e7646d2SAndroid Build Coastguard Worker 664*5e7646d2SAndroid Build Coastguard Worker</blockquote> 665*5e7646d2SAndroid Build Coastguard Worker 666*5e7646d2SAndroid Build Coastguard Worker 667*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>Deprecated</span><a name='cupsColorProfile'>cupsColorProfile</a></h3> 668*5e7646d2SAndroid Build Coastguard Worker 669*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsColorProfile Resolution/MediaType: "density gamma m00 m01 m02 m10 m11 m12 m20 m21 m22"</p> 670*5e7646d2SAndroid Build Coastguard Worker 671*5e7646d2SAndroid Build Coastguard Worker<p>This string keyword specifies an sRGB-based color profile consisting of gamma and density controls and a 3x3 CMY color transform matrix. <em>This keyword is not supported on macOS.</em></p> 672*5e7646d2SAndroid Build Coastguard Worker 673*5e7646d2SAndroid Build Coastguard Worker<p>The <i>Resolution</i> and <i>MediaType</i> values may be "-" to act as a wildcard. Otherwise they must match one of the <tt>Resolution</tt> or <tt>MediaType</tt> option keywords defined in the PPD file.</p> 674*5e7646d2SAndroid Build Coastguard Worker 675*5e7646d2SAndroid Build Coastguard Worker<p>The <i>density</i> and <i>gamma</i> values define gamma and 676*5e7646d2SAndroid Build Coastguard Workerdensity adjustment function such that:</p> 677*5e7646d2SAndroid Build Coastguard Worker 678*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 679*5e7646d2SAndroid Build Coastguard Workerf(x) = density * x <sup style='font-size: 100%'>gamma</sup> 680*5e7646d2SAndroid Build Coastguard Worker</pre> 681*5e7646d2SAndroid Build Coastguard Worker 682*5e7646d2SAndroid Build Coastguard Worker<p>The <i>m00</i> through <i>m22</i> values define a 3x3 transformation matrix for the CMY color values. The density function is applied <i>after</i> the CMY transformation:</p> 683*5e7646d2SAndroid Build Coastguard Worker 684*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 685*5e7646d2SAndroid Build Coastguard Worker| m00 m01 m02 | 686*5e7646d2SAndroid Build Coastguard Worker| m10 m11 m12 | 687*5e7646d2SAndroid Build Coastguard Worker| m20 m21 m22 | 688*5e7646d2SAndroid Build Coastguard Worker</pre> 689*5e7646d2SAndroid Build Coastguard Worker 690*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 691*5e7646d2SAndroid Build Coastguard Worker 692*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 693*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify a profile for printing at 360dpi on all media types</em> 694*5e7646d2SAndroid Build Coastguard Worker*cupsColorProfile 360dpi/-: "1.0 1.5 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0" 695*5e7646d2SAndroid Build Coastguard Worker 696*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify a profile for printing at 720dpi on Glossy media</em> 697*5e7646d2SAndroid Build Coastguard Worker*cupsColorProfile 720dpi/Glossy: "1.0 2.5 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0" 698*5e7646d2SAndroid Build Coastguard Worker 699*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify a default profile for printing at all other resolutions and media types</em> 700*5e7646d2SAndroid Build Coastguard Worker*cupsColorProfile -/-: "0.9 2.0 1.0 0.0 -0.2 -0.4 1.0 0.0 -0.2 0.0 1.0" 701*5e7646d2SAndroid Build Coastguard Worker</pre> 702*5e7646d2SAndroid Build Coastguard Worker 703*5e7646d2SAndroid Build Coastguard Worker 704*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>macOS 10.3/CUPS 1.2</span><a name='cupsICCProfile'>cupsICCProfile</a></h3> 705*5e7646d2SAndroid Build Coastguard Worker 706*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsICCProfile ColorModel.MediaType.Resolution/Description: "filename"</p> 707*5e7646d2SAndroid Build Coastguard Worker 708*5e7646d2SAndroid Build Coastguard Worker<p>This keyword specifies an ICC color profile that is used to convert the document colors to the device colorspace. The <tt>ColorModel</tt>, <tt>MediaType</tt>, and <tt>Resolution</tt> option keywords specify a selector for color profiles. If omitted, the color profile will match any option keyword for the corresponding main keyword.</p> 709*5e7646d2SAndroid Build Coastguard Worker 710*5e7646d2SAndroid Build Coastguard Worker<p>The <tt>Description</tt> specifies human-readable text that is associated with the color profile. The <tt>filename</tt> portion specifies the ICC color profile to use; if the filename is not absolute, it is loaded relative to the <var>/usr/share/cups/profiles</var> directory.</p> 711*5e7646d2SAndroid Build Coastguard Worker 712*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 713*5e7646d2SAndroid Build Coastguard Worker 714*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 715*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify a profile for CMYK printing at 360dpi on all media types</em> 716*5e7646d2SAndroid Build Coastguard Worker*cupsICCProfile CMYK..360dpi/360dpi CMYK: "/Library/Printers/vendor/Profiles/foo-360-cmyk.icc" 717*5e7646d2SAndroid Build Coastguard Worker 718*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify a profile for RGB printing at 720dpi on Glossy media</em> 719*5e7646d2SAndroid Build Coastguard Worker*cupsColorProfile RGB.Glossy.720dpi/720dpi Glossy: "/Library/Printers/vendor/Profiles/foo-720-glossy-rgb.icc" 720*5e7646d2SAndroid Build Coastguard Worker 721*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify a default profile for printing at all other resolutions and media types</em> 722*5e7646d2SAndroid Build Coastguard Worker*cupsICCProfile ../Default: "/Library/Printers/vendor/Profiles/foo-default.icc" 723*5e7646d2SAndroid Build Coastguard Worker</pre> 724*5e7646d2SAndroid Build Coastguard Worker 725*5e7646d2SAndroid Build Coastguard Worker<h4 class="title">Customizing the Profile Selection Keywords</h4> 726*5e7646d2SAndroid Build Coastguard Worker 727*5e7646d2SAndroid Build Coastguard Worker<p>The <tt>ColorModel</tt>, <tt>MediaType</tt>, and <tt>Resolution</tt> main keywords can be reassigned to different main keywords, allowing drivers to do color profile selection based on different parameters. The <tt>cupsICCQualifier1</tt>, <tt>cupsICCQualifier2</tt>, and <tt>cupsICCQualifier3</tt> keywords define the mapping from selector to main keyword:</p> 728*5e7646d2SAndroid Build Coastguard Worker 729*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 730*5e7646d2SAndroid Build Coastguard Worker*cupsICCQualifier1: MainKeyword1 731*5e7646d2SAndroid Build Coastguard Worker*cupsICCQualifier2: MainKeyword2 732*5e7646d2SAndroid Build Coastguard Worker*cupsICCQualifier3: MainKeyword3 733*5e7646d2SAndroid Build Coastguard Worker</pre> 734*5e7646d2SAndroid Build Coastguard Worker 735*5e7646d2SAndroid Build Coastguard Worker<p>The default mapping is as follows:</p> 736*5e7646d2SAndroid Build Coastguard Worker 737*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 738*5e7646d2SAndroid Build Coastguard Worker*cupsICCQualifier1: ColorModel 739*5e7646d2SAndroid Build Coastguard Worker*cupsICCQualifier2: MediaType 740*5e7646d2SAndroid Build Coastguard Worker*cupsICCQualifier3: Resolution 741*5e7646d2SAndroid Build Coastguard Worker</pre> 742*5e7646d2SAndroid Build Coastguard Worker 743*5e7646d2SAndroid Build Coastguard Worker 744*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>macOS 10.4</span><a name='APCustom'>Custom Color Matching Support</a></h3> 745*5e7646d2SAndroid Build Coastguard Worker 746*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*<a href='#APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a>: true<br> 747*5e7646d2SAndroid Build Coastguard Worker*<a href='#APCustomColorMatchingName'>APCustomColorMatchingName</a> name/text: ""<br> 748*5e7646d2SAndroid Build Coastguard Worker*<a href='#APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a>: profile<br> 749*5e7646d2SAndroid Build Coastguard Worker*<a href='#APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a>: profile</p> 750*5e7646d2SAndroid Build Coastguard Worker 751*5e7646d2SAndroid Build Coastguard Worker<p>These keywords tell the macOS raster filters that the printer driver provides its own custom color matching and that generic color profiles should be used when generating 1-, 3-, and 4-component raster data as requested by the driver. The <tt>APCustomColorMatchingProfile</tt> and <tt>APDefaultColorMatchingProfile</tt> keywords specify alternate color profiles (sRGB or AdobeRGB) to use for 3-color (RGB) raster data.</p> 752*5e7646d2SAndroid Build Coastguard Worker 753*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b> 754*5e7646d2SAndroid Build Coastguard Worker 755*5e7646d2SAndroid Build Coastguard Worker<p>Prior to macOS 10.6, the default RGB color space was Apple's "GenericRGB". The new default in macOS 10.6 and later is "sRGB". For more information, see <a href="http://support.apple.com/kb/HT3712">"macOS v10.6: About gamma 2.2"</a> on Apple's support site.</p> 756*5e7646d2SAndroid Build Coastguard Worker 757*5e7646d2SAndroid Build Coastguard Worker</blockquote> 758*5e7646d2SAndroid Build Coastguard Worker 759*5e7646d2SAndroid Build Coastguard Worker<h4 class="title"><span class='info'>macOS 10.5</span><a name='APCustomColorMatchingName'>APCustomColorMatchingName</a></h4> 760*5e7646d2SAndroid Build Coastguard Worker 761*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*APCustomColorMatchingName name/text: ""</p> 762*5e7646d2SAndroid Build Coastguard Worker 763*5e7646d2SAndroid Build Coastguard Worker<p>This keyword defines an alternate name for the color matching provided by a driver in the <var>Color Matching</var> print panel. The default is to use the name "Vendor Matching" or its localized equivalent.</p> 764*5e7646d2SAndroid Build Coastguard Worker 765*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 766*5e7646d2SAndroid Build Coastguard Worker 767*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 768*5e7646d2SAndroid Build Coastguard Worker*% Define the names for our color matching... 769*5e7646d2SAndroid Build Coastguard Worker*APCustomColorMatchingName name/AcmeColor(tm): "" 770*5e7646d2SAndroid Build Coastguard Worker*fr.APCustomColorMatchingName name/La AcmeColor(tm): "" 771*5e7646d2SAndroid Build Coastguard Worker</pre> 772*5e7646d2SAndroid Build Coastguard Worker 773*5e7646d2SAndroid Build Coastguard Worker<h4 class="title"><span class='info'>macOS 10.5</span><a name='APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a></h4> 774*5e7646d2SAndroid Build Coastguard Worker 775*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*APCustomColorMatchingProfile: name</p> 776*5e7646d2SAndroid Build Coastguard Worker 777*5e7646d2SAndroid Build Coastguard Worker<p>This keyword defines a supported RGB color profile that can be used when doing custom color matching. Currently only <tt>sRGB</tt>, <tt>AdobeRGB</tt>, and <tt>GenericRGB</tt> are supported. If not specified, RGB data will use the GenericRGB colorspace.</p> 778*5e7646d2SAndroid Build Coastguard Worker 779*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b> 780*5e7646d2SAndroid Build Coastguard Worker 781*5e7646d2SAndroid Build Coastguard Worker<p>If you provide multiple <tt>APCustomColorMatchingProfile</tt> keywords, you are responsible for providing the necessary user interface controls to select the profile in a <a href='#APDialogExtension'>print dialog pane</a>. Add the named profile to the print settings using the key <tt>kPMCustomColorMatchingProfileKey</tt>.</p> 782*5e7646d2SAndroid Build Coastguard Worker 783*5e7646d2SAndroid Build Coastguard Worker</blockquote> 784*5e7646d2SAndroid Build Coastguard Worker 785*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 786*5e7646d2SAndroid Build Coastguard Worker 787*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 788*5e7646d2SAndroid Build Coastguard Worker*% Use sRGB for RGB color by default, but support both sRGB and AdobeRGB 789*5e7646d2SAndroid Build Coastguard Worker*APSupportsCustomColorMatching: true 790*5e7646d2SAndroid Build Coastguard Worker*APDefaultCustomColorMatchingProfile: sRGB 791*5e7646d2SAndroid Build Coastguard Worker*APCustomColorMatchingProfile: sRGB 792*5e7646d2SAndroid Build Coastguard Worker*APCustomColorMatchingProfile: AdobeRGB 793*5e7646d2SAndroid Build Coastguard Worker</pre> 794*5e7646d2SAndroid Build Coastguard Worker 795*5e7646d2SAndroid Build Coastguard Worker<h4 class="title"><span class='info'>macOS 10.5</span><a name='APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a></h4> 796*5e7646d2SAndroid Build Coastguard Worker 797*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*APDefaultCustomColorMatchingProfile: name</p> 798*5e7646d2SAndroid Build Coastguard Worker 799*5e7646d2SAndroid Build Coastguard Worker<p>This keyword defines the default RGB color profile that will be used when doing custom color matching. Currently only <tt>sRGB</tt>, <tt>AdobeRGB</tt>, and <tt>GenericRGB</tt> are supported.</p> 800*5e7646d2SAndroid Build Coastguard Worker 801*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 802*5e7646d2SAndroid Build Coastguard Worker 803*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 804*5e7646d2SAndroid Build Coastguard Worker*% Use sRGB for RGB color by default 805*5e7646d2SAndroid Build Coastguard Worker*APSupportsCustomColorMatching: true 806*5e7646d2SAndroid Build Coastguard Worker*APDefaultCustomColorMatchingProfile: sRGB 807*5e7646d2SAndroid Build Coastguard Worker</pre> 808*5e7646d2SAndroid Build Coastguard Worker 809*5e7646d2SAndroid Build Coastguard Worker<h4 class="title"><span class='info'>macOS 10.4</span><a name='APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a></h4> 810*5e7646d2SAndroid Build Coastguard Worker 811*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*APSupportsCustomColorMatching: boolean</p> 812*5e7646d2SAndroid Build Coastguard Worker 813*5e7646d2SAndroid Build Coastguard Worker<p>This keyword specifies that the driver provides its own custom color matching. When <tt>true</tt>, the default hand-off colorspace will be GenericGray, GenericRGB, or GenericCMYK depending on the number of components the driver requests. The <a href='#APDefaultCustomColorMatchingProfile'><tt>APDefaultCustomColorMatchingProfile</tt></a> keyword can be used to override the default 3-component (RGB) colorspace.</p> 814*5e7646d2SAndroid Build Coastguard Worker 815*5e7646d2SAndroid Build Coastguard Worker<p>The default for <tt>APSupportsCustomColorMatching</tt> is <tt>false</tt>.</p> 816*5e7646d2SAndroid Build Coastguard Worker 817*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 818*5e7646d2SAndroid Build Coastguard Worker 819*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 820*5e7646d2SAndroid Build Coastguard Worker*APSupportsCustomColorMatching: true 821*5e7646d2SAndroid Build Coastguard Worker*APDefaultCustomColorMatchingProfile: sRGB 822*5e7646d2SAndroid Build Coastguard Worker</pre> 823*5e7646d2SAndroid Build Coastguard Worker 824*5e7646d2SAndroid Build Coastguard Worker 825*5e7646d2SAndroid Build Coastguard Worker<h2 class='title'><a name='CONSTRAINTS'>Constraints</a></h2> 826*5e7646d2SAndroid Build Coastguard Worker 827*5e7646d2SAndroid Build Coastguard Worker<p>Constraints are option choices that are not allowed by the driver or device, for example printing 2-sided transparencies. All versions of CUPS support constraints defined by the legacy Adobe <tt>UIConstraints</tt> and <tt>NonUIConstraints</tt> keywords which support conflicts between any two option choices, for example:</p> 828*5e7646d2SAndroid Build Coastguard Worker 829*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 830*5e7646d2SAndroid Build Coastguard Worker*% Do not allow 2-sided printing on transparency media 831*5e7646d2SAndroid Build Coastguard Worker*UIConstraints: "*Duplex *MediaType Transparency" 832*5e7646d2SAndroid Build Coastguard Worker*UIConstraints: "*MediaType Transparency *Duplex" 833*5e7646d2SAndroid Build Coastguard Worker</pre> 834*5e7646d2SAndroid Build Coastguard Worker 835*5e7646d2SAndroid Build Coastguard Worker<p>While nearly all constraints can be expressed using these keywords, there are valid scenarios requiring constraints between more than two option choices. In addition, resolution of constraints is problematic since users and software have to guess how a particular constraint is best resolved.</p> 836*5e7646d2SAndroid Build Coastguard Worker 837*5e7646d2SAndroid Build Coastguard Worker<p>CUPS 1.4 and higher define two new keywords for constraints, <tt>cupsUIConstraints</tt> and <tt>cupsUIResolver</tt>. Each <tt>cupsUIConstraints</tt> keyword points to a <tt>cupsUIResolver</tt> keyword which specifies alternate options that resolve the conflict condition. The same <tt>cupsUIResolver</tt> can be used by multiple <tt>cupsUIConstraints</tt>.</p> 838*5e7646d2SAndroid Build Coastguard Worker 839*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b> 840*5e7646d2SAndroid Build Coastguard Worker 841*5e7646d2SAndroid Build Coastguard Worker<p>When developing PPD files that contain constraints, it is very important to use the <a href="man-cupstestppd.html">cupstestppd(1)</a> program to verify that your constraints are accurate and cannot result in unresolvable option selections.</p> 842*5e7646d2SAndroid Build Coastguard Worker 843*5e7646d2SAndroid Build Coastguard Worker</blockquote> 844*5e7646d2SAndroid Build Coastguard Worker 845*5e7646d2SAndroid Build Coastguard Worker 846*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsUIConstraints'>cupsUIConstraints</a></h3> 847*5e7646d2SAndroid Build Coastguard Worker 848*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsUIConstraints resolver: "*Keyword1 *Keyword2 ..."<br> 849*5e7646d2SAndroid Build Coastguard Worker*cupsUIConstraints resolver: "*Keyword1 OptionKeyword1 *Keyword2 ..."<br> 850*5e7646d2SAndroid Build Coastguard Worker*cupsUIConstraints resolver: "*Keyword1 *Keyword2 OptionKeyword2 ..."<br> 851*5e7646d2SAndroid Build Coastguard Worker*cupsUIConstraints resolver: "*Keyword1 OptionKeyword1 *Keyword2 OptionKeyword2 ..."<br> 852*5e7646d2SAndroid Build Coastguard Worker*cupsUIConstraints: "*InstallableKeyword1 OptionKeyword1 *Keyword2 OptionKeyword2 ..."</p> 853*5e7646d2SAndroid Build Coastguard Worker 854*5e7646d2SAndroid Build Coastguard Worker<p>Lists two or more options which conflict. The "resolver" string is a (possibly unique) keyword which specifies which options to change when the constraint exists. When no resolver is provided, CUPS first tries the default choice followed by testing each option choice to resolve the conflict.</p> 855*5e7646d2SAndroid Build Coastguard Worker 856*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 857*5e7646d2SAndroid Build Coastguard Worker 858*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 859*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify that 2-sided printing cannot happen on transparencies</em> 860*5e7646d2SAndroid Build Coastguard Worker*cupsUIConstraints transparency: "*Duplex *MediaType Transparency" 861*5e7646d2SAndroid Build Coastguard Worker 862*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify that envelope printing cannot happen from the paper trays</em> 863*5e7646d2SAndroid Build Coastguard Worker*cupsUIConstraints envelope: "*PageSize Env10 *InputSlot Tray1" 864*5e7646d2SAndroid Build Coastguard Worker*cupsUIConstraints envelope: "*PageSize Env10 *InputSlot Tray1" 865*5e7646d2SAndroid Build Coastguard Worker*cupsUIConstraints envelope: "*PageSize EnvDL *InputSlot Tray2" 866*5e7646d2SAndroid Build Coastguard Worker*cupsUIConstraints envelope: "*PageSize EnvDL *InputSlot Tray2" 867*5e7646d2SAndroid Build Coastguard Worker 868*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify an installable option constraint for the envelope feeder</em> 869*5e7646d2SAndroid Build Coastguard Worker*cupsUIConstraints: "*InputSlot EnvFeeder *InstalledEnvFeeder" 870*5e7646d2SAndroid Build Coastguard Worker 871*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify that photo printing cannot happen on plain paper or transparencies at 1200dpi</em> 872*5e7646d2SAndroid Build Coastguard Worker*cupsUIConstraints photo: "*OutputMode Photo *MediaType Plain *Resolution 1200dpi" 873*5e7646d2SAndroid Build Coastguard Worker*cupsUIConstraints photo: "*OutputMode Photo *MediaType Transparency *Resolution 1200dpi" 874*5e7646d2SAndroid Build Coastguard Worker</pre> 875*5e7646d2SAndroid Build Coastguard Worker 876*5e7646d2SAndroid Build Coastguard Worker 877*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsUIResolver'>cupsUIResolver</a></h3> 878*5e7646d2SAndroid Build Coastguard Worker 879*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsUIResolver resolver: "*Keyword1 OptionKeyword1 *Keyword2 OptionKeyword2 ..."</p> 880*5e7646d2SAndroid Build Coastguard Worker 881*5e7646d2SAndroid Build Coastguard Worker<p>Specifies two or more options to mark/select to resolve a constraint. The "resolver" string identifies a particular action to take for one or more <a href='#cupsUIConstraints'><tt>cupsUIConstraints</tt></a>. The same action can be used for multiple constraints. The option keyword pairs are treated as an ordered list of option selections to try - only the first N selections will be used, where N is the minimum number of selections required. Because <a href="api-ppd.html#cupsResolveConflicts"><code>cupsResolveConflicts()</code></a> will not change the most recent option selection passed to it, at least two options from the constraints must be listed to avoid situations where conflicts cannot be resolved.</p> 882*5e7646d2SAndroid Build Coastguard Worker 883*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 884*5e7646d2SAndroid Build Coastguard Worker 885*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 886*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify the options to change for the 2-sided transparency constraint</em> 887*5e7646d2SAndroid Build Coastguard Worker*cupsUIResolver transparency: "*Duplex None *MediaType Plain" 888*5e7646d2SAndroid Build Coastguard Worker 889*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify the options to change for the envelope printing constraints. Notice 890*5e7646d2SAndroid Build Coastguard Worker*% that we try to change the InputSlot to either the envelope feeder or the 891*5e7646d2SAndroid Build Coastguard Worker*% manual feed first, then we change the page size...</em> 892*5e7646d2SAndroid Build Coastguard Worker*cupsUIResolver envelope: "*InputSlot EnvFeeder *InputSlot ManualFeed *PageSize Letter" 893*5e7646d2SAndroid Build Coastguard Worker 894*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify the options to change for the photo printing constraints</em> 895*5e7646d2SAndroid Build Coastguard Worker*cupsUIResolver photo: "*OutputMode Best *Resolution 600dpi" 896*5e7646d2SAndroid Build Coastguard Worker</pre> 897*5e7646d2SAndroid Build Coastguard Worker 898*5e7646d2SAndroid Build Coastguard Worker 899*5e7646d2SAndroid Build Coastguard Worker<h2 class='title'><a name='I18N'>Globalized PPD Support</a></h2> 900*5e7646d2SAndroid Build Coastguard Worker 901*5e7646d2SAndroid Build Coastguard Worker<p>CUPS 1.2 and higher adds support for PPD files containing multiple languages by following the following additional rules:</p> 902*5e7646d2SAndroid Build Coastguard Worker 903*5e7646d2SAndroid Build Coastguard Worker<ol> 904*5e7646d2SAndroid Build Coastguard Worker 905*5e7646d2SAndroid Build Coastguard Worker <li>The <tt>LanguageVersion</tt> MUST be <tt>English</tt></li> 906*5e7646d2SAndroid Build Coastguard Worker 907*5e7646d2SAndroid Build Coastguard Worker <li>The <tt>LanguageEncoding</tt> MUST be <tt>ISOLatin1</tt></li> 908*5e7646d2SAndroid Build Coastguard Worker 909*5e7646d2SAndroid Build Coastguard Worker <li>The <tt>cupsLanguages</tt> keyword MUST be provided and list each of the supported locales in the PPD file</li> 910*5e7646d2SAndroid Build Coastguard Worker 911*5e7646d2SAndroid Build Coastguard Worker <li>Main and option keywords MUST NOT exceed 34 (instead of 40) characters to allow room for the locale prefixes in translation keywords</li> 912*5e7646d2SAndroid Build Coastguard Worker 913*5e7646d2SAndroid Build Coastguard Worker <li>The main keyword "Translation" MUST NOT be used</li> 914*5e7646d2SAndroid Build Coastguard Worker 915*5e7646d2SAndroid Build Coastguard Worker <li>Translation strings included with the main and option keywords MUST NOT contain characters outside the ASCII subset of ISOLatin1 and UTF-8; developers wishing to use characters outside ASCII MUST provide a separate set of English localization keywords for the affected keywords.</li> 916*5e7646d2SAndroid Build Coastguard Worker 917*5e7646d2SAndroid Build Coastguard Worker <li>Localizations are specified using a locale prefix of the form "ll" or "ll_CC." where "ll" is the 2-letter ISO language code and "CC" is the 2-letter ISO country code<ul> 918*5e7646d2SAndroid Build Coastguard Worker <li>A generic language translation ("ll") SHOULD be provided with country-specific differences ("ll_CC") provided only as needed</li> 919*5e7646d2SAndroid Build Coastguard Worker <li>For historical reasons, the "zh" and "zh_CN" locales map to Simplified Chinese while the "zh_TW" locale maps to Traditional Chinese</li> 920*5e7646d2SAndroid Build Coastguard Worker </ul></li> 921*5e7646d2SAndroid Build Coastguard Worker 922*5e7646d2SAndroid Build Coastguard Worker <li>Locale-specific translation strings MUST be encoded using UTF-8.</li> 923*5e7646d2SAndroid Build Coastguard Worker 924*5e7646d2SAndroid Build Coastguard Worker <li>Main keywords MUST be localized using one of the following forms: 925*5e7646d2SAndroid Build Coastguard Worker <p><tt>*ll.Translation MainKeyword/translation text: ""</tt><br /> 926*5e7646d2SAndroid Build Coastguard Worker <tt>*ll_CC.Translation MainKeyword/translation text: ""</tt></p></li> 927*5e7646d2SAndroid Build Coastguard Worker 928*5e7646d2SAndroid Build Coastguard Worker <li>Option keywords MUST be localized using one of the following forms: 929*5e7646d2SAndroid Build Coastguard Worker <p><tt>*ll.MainKeyword OptionKeyword/translation text: ""</tt><br> 930*5e7646d2SAndroid Build Coastguard Worker <tt>*ll_CC.MainKeyword OptionKeyword/translation text: ""</tt></p></li> 931*5e7646d2SAndroid Build Coastguard Worker 932*5e7646d2SAndroid Build Coastguard Worker <li>Localization keywords MAY appear anywhere after the first line of the PPD file</li> 933*5e7646d2SAndroid Build Coastguard Worker 934*5e7646d2SAndroid Build Coastguard Worker</ol> 935*5e7646d2SAndroid Build Coastguard Worker 936*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b> 937*5e7646d2SAndroid Build Coastguard Worker 938*5e7646d2SAndroid Build Coastguard Worker<p>We use a <tt>LanguageEncoding</tt> value of <tt>ISOLatin1</tt> and limit the allowed base translation strings to ASCII to avoid character coding issues that would otherwise occur. In addition, requiring the base translation strings to be in English allows for easier fallback translation when no localization is provided in the PPD file for a given locale.</p> 939*5e7646d2SAndroid Build Coastguard Worker 940*5e7646d2SAndroid Build Coastguard Worker</blockquote> 941*5e7646d2SAndroid Build Coastguard Worker 942*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 943*5e7646d2SAndroid Build Coastguard Worker 944*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 945*5e7646d2SAndroid Build Coastguard Worker*LanguageVersion: English 946*5e7646d2SAndroid Build Coastguard Worker*LanguageEncoding: ISOLatin1 947*5e7646d2SAndroid Build Coastguard Worker*cupsLanguages: "de fr_CA" 948*5e7646d2SAndroid Build Coastguard Worker*ModelName: "Foobar Laser 9999" 949*5e7646d2SAndroid Build Coastguard Worker 950*5e7646d2SAndroid Build Coastguard Worker<em>*% Localize ModelName for French and German</em> 951*5e7646d2SAndroid Build Coastguard Worker*fr_CA.Translation ModelName/La Foobar Laser 9999: "" 952*5e7646d2SAndroid Build Coastguard Worker*de.Translation ModelName/Foobar LaserDrucken 9999: "" 953*5e7646d2SAndroid Build Coastguard Worker 954*5e7646d2SAndroid Build Coastguard Worker*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html" 955*5e7646d2SAndroid Build Coastguard Worker<em>*% Localize printer-state-reason for French and German</em> 956*5e7646d2SAndroid Build Coastguard Worker*fr_CA.cupsIPPReason com.vendor-error/Une erreur sèrieuse s'est produite: "/help/com.vendor/error.html" 957*5e7646d2SAndroid Build Coastguard Worker*de.cupsIPPReason com.vendor-error/Eine ernste Störung trat: "/help/com.vendor/error.html" 958*5e7646d2SAndroid Build Coastguard Worker 959*5e7646d2SAndroid Build Coastguard Worker... 960*5e7646d2SAndroid Build Coastguard Worker 961*5e7646d2SAndroid Build Coastguard Worker*OpenUI *InputSlot/Paper Source: PickOne 962*5e7646d2SAndroid Build Coastguard Worker*OrderDependency: 10 AnySetup *InputSlot 963*5e7646d2SAndroid Build Coastguard Worker*DefaultInputSlot: Auto 964*5e7646d2SAndroid Build Coastguard Worker<em>*% Localize InputSlot for French and German</em> 965*5e7646d2SAndroid Build Coastguard Worker*fr_CA.Translation InputSlot/Papier source: "" 966*5e7646d2SAndroid Build Coastguard Worker*de.Translation InputSlot/Papiereinzug: "" 967*5e7646d2SAndroid Build Coastguard Worker*InputSlot Auto/Default: "<</ManualFeed false>>setpagedevice" 968*5e7646d2SAndroid Build Coastguard Worker<em>*% Localize InputSlot=Auto for French and German</em> 969*5e7646d2SAndroid Build Coastguard Worker*fr_CA.InputSlot Auto/Par Defaut: "" 970*5e7646d2SAndroid Build Coastguard Worker*de.InputSlot Auto/Standard: "" 971*5e7646d2SAndroid Build Coastguard Worker*InputSlot Manual/Manual Feed: "<</ManualFeed true>>setpagedevice" 972*5e7646d2SAndroid Build Coastguard Worker<em>*% Localize InputSlot=Manual for French and German</em> 973*5e7646d2SAndroid Build Coastguard Worker*fr_CA.InputSlot Manual/Manuel mecanisme de alimentation: "" 974*5e7646d2SAndroid Build Coastguard Worker*de.InputSlot Manual/Manueller Einzug: "" 975*5e7646d2SAndroid Build Coastguard Worker*CloseUI: *InputSlot 976*5e7646d2SAndroid Build Coastguard Worker</pre> 977*5e7646d2SAndroid Build Coastguard Worker 978*5e7646d2SAndroid Build Coastguard Worker 979*5e7646d2SAndroid Build Coastguard Worker<h2 class='title'><a name='OPTIONS'><span class="info">CUPS 1.3/macOS 10.6</span>Custom Options</a></h2> 980*5e7646d2SAndroid Build Coastguard Worker 981*5e7646d2SAndroid Build Coastguard Worker<p>CUPS supports custom options using an extension of the <tt>CustomPageSize</tt> and <tt>ParamCustomPageSize</tt> syntax:</p> 982*5e7646d2SAndroid Build Coastguard Worker 983*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 984*5e7646d2SAndroid Build Coastguard Worker*CustomFoo True: "command" 985*5e7646d2SAndroid Build Coastguard Worker*ParamCustomFoo Name1/Text 1: order type minimum maximum 986*5e7646d2SAndroid Build Coastguard Worker*ParamCustomFoo Name2/Text 2: order type minimum maximum 987*5e7646d2SAndroid Build Coastguard Worker... 988*5e7646d2SAndroid Build Coastguard Worker*ParamCustomFoo NameN/Text N: order type minimum maximum 989*5e7646d2SAndroid Build Coastguard Worker</pre> 990*5e7646d2SAndroid Build Coastguard Worker 991*5e7646d2SAndroid Build Coastguard Worker<p>When the base option is part of the <tt>JCLSetup</tt> section, the "command" string contains JCL commands with "\order" placeholders for each numbered parameter. The CUPS API handles any necessary value quoting for HP-PJL commands. For example, if the JCL command string is "@PJL SET PASSCODE=\1" and the first 992*5e7646d2SAndroid Build Coastguard Workeroption value is "1234" then CUPS will output the string "@PJL SET PASSCODE=1234".</p> 993*5e7646d2SAndroid Build Coastguard Worker 994*5e7646d2SAndroid Build Coastguard Worker<p>For non-<tt>JCLSetup</tt> options, the "order" value is a number from 1 to N and specifies the order of values as they are placed on the stack before the command. For example, if the PostScript command string is "<</cupsReal1 2 1 roll>>setpagedevice" and the option value is "2.0" then CUPS will output the string "2.0 <</cupsReal1 2 1 roll>>setpagedevice".</p> 995*5e7646d2SAndroid Build Coastguard Worker 996*5e7646d2SAndroid Build Coastguard Worker<p>The "type" is one of the following keywords:</p> 997*5e7646d2SAndroid Build Coastguard Worker 998*5e7646d2SAndroid Build Coastguard Worker<ul> 999*5e7646d2SAndroid Build Coastguard Worker 1000*5e7646d2SAndroid Build Coastguard Worker <li><tt>curve</tt> - a real value from "minimum" to "maximum" representing a gamma correction curve using the function: f(x) = x <sup>value</sup></li> 1001*5e7646d2SAndroid Build Coastguard Worker 1002*5e7646d2SAndroid Build Coastguard Worker <li><tt>int</tt> - an integer value from "minimum" to "maximum"</li> 1003*5e7646d2SAndroid Build Coastguard Worker 1004*5e7646d2SAndroid Build Coastguard Worker <li><tt>invcurve</tt> - a real value from "minimum" to "maximum" representing a gamma correction curve using the function: f(x) = x <sup>1 / value</sup></li> 1005*5e7646d2SAndroid Build Coastguard Worker 1006*5e7646d2SAndroid Build Coastguard Worker <li><tt>passcode</tt> - a string of numbers value with a minimum of "minimum" numbers and a maximum of "maximum" numbers ("minimum" and "maximum" are numbers and passcode strings are not displayed in the user interface)</li> 1007*5e7646d2SAndroid Build Coastguard Worker 1008*5e7646d2SAndroid Build Coastguard Worker <li><tt>password</tt> - a string value with a minimum of "minimum" characters and a maximum of "maximum" characters ("minimum" and "maximum" are numbers and password strings are not displayed in the user interface)</li> 1009*5e7646d2SAndroid Build Coastguard Worker 1010*5e7646d2SAndroid Build Coastguard Worker <li><tt>points</tt> - a measurement value in points from "minimum" to "maximum"</li> 1011*5e7646d2SAndroid Build Coastguard Worker 1012*5e7646d2SAndroid Build Coastguard Worker <li><tt>real</tt> - a real value from "minimum" to "maximum"</li> 1013*5e7646d2SAndroid Build Coastguard Worker 1014*5e7646d2SAndroid Build Coastguard Worker <li><tt>string</tt> - a string value with a minimum of "minimum" characters and a maximum of "maximum" characters ("minimum" and "maximum" are numbers)</li> 1015*5e7646d2SAndroid Build Coastguard Worker 1016*5e7646d2SAndroid Build Coastguard Worker</ul> 1017*5e7646d2SAndroid Build Coastguard Worker 1018*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 1019*5e7646d2SAndroid Build Coastguard Worker 1020*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1021*5e7646d2SAndroid Build Coastguard Worker<em>*% Base JCL key code option</em> 1022*5e7646d2SAndroid Build Coastguard Worker*JCLOpenUI JCLPasscode/Key Code: PickOne 1023*5e7646d2SAndroid Build Coastguard Worker*OrderDependency: 10 JCLSetup *JCLPasscode 1024*5e7646d2SAndroid Build Coastguard Worker*DefaultJCLPasscode: None 1025*5e7646d2SAndroid Build Coastguard Worker*JCLPasscode None/No Code: "" 1026*5e7646d2SAndroid Build Coastguard Worker*JCLPasscode 1111: "@PJL SET PASSCODE = 1111<0A>" 1027*5e7646d2SAndroid Build Coastguard Worker*JCLPasscode 2222: "@PJL SET PASSCODE = 2222<0A>" 1028*5e7646d2SAndroid Build Coastguard Worker*JCLPasscode 3333: "@PJL SET PASSCODE = 3333<0A>" 1029*5e7646d2SAndroid Build Coastguard Worker*JCLCloseUI: *JCLPasscode 1030*5e7646d2SAndroid Build Coastguard Worker 1031*5e7646d2SAndroid Build Coastguard Worker<em>*% Custom JCL key code option</em> 1032*5e7646d2SAndroid Build Coastguard Worker*CustomJCLPasscode True: "@PJL SET PASSCODE = \1<0A>" 1033*5e7646d2SAndroid Build Coastguard Worker*ParamCustomJCLPasscode Code/Key Code: 1 passcode 4 4 1034*5e7646d2SAndroid Build Coastguard Worker 1035*5e7646d2SAndroid Build Coastguard Worker 1036*5e7646d2SAndroid Build Coastguard Worker<em>*% Base PostScript watermark option</em> 1037*5e7646d2SAndroid Build Coastguard Worker*OpenUI WatermarkText/Watermark Text: PickOne 1038*5e7646d2SAndroid Build Coastguard Worker*OrderDependency: 10 AnySetup *WatermarkText 1039*5e7646d2SAndroid Build Coastguard Worker*DefaultWatermarkText: None 1040*5e7646d2SAndroid Build Coastguard Worker*WatermarkText None: "" 1041*5e7646d2SAndroid Build Coastguard Worker*WatermarkText Draft: "<</cupsString1(Draft)>>setpagedevice" 1042*5e7646d2SAndroid Build Coastguard Worker*CloseUI: *WatermarkText 1043*5e7646d2SAndroid Build Coastguard Worker 1044*5e7646d2SAndroid Build Coastguard Worker<em>*% Custom PostScript watermark option</em> 1045*5e7646d2SAndroid Build Coastguard Worker*CustomWatermarkText True: "<</cupsString1 3 -1 roll>>setpagedevice" 1046*5e7646d2SAndroid Build Coastguard Worker*ParamCustomWatermarkText Text: 1 string 0 32 1047*5e7646d2SAndroid Build Coastguard Worker 1048*5e7646d2SAndroid Build Coastguard Worker 1049*5e7646d2SAndroid Build Coastguard Worker<em>*% Base PostScript gamma/density option</em> 1050*5e7646d2SAndroid Build Coastguard Worker*OpenUI GammaDensity/Gamma and Density: PickOne 1051*5e7646d2SAndroid Build Coastguard Worker*OrderDependency: 10 AnySetup *GammaDensity 1052*5e7646d2SAndroid Build Coastguard Worker*DefaultGammaDensity: Normal 1053*5e7646d2SAndroid Build Coastguard Worker*GammaDensity Normal/Normal: "<</cupsReal1 1.0/cupsReal2 1.0>>setpagedevice" 1054*5e7646d2SAndroid Build Coastguard Worker*GammaDensity Light/Lighter: "<</cupsReal1 0.9/cupsReal2 0.67>>setpagedevice" 1055*5e7646d2SAndroid Build Coastguard Worker*GammaDensity Dark/Darker: "<</cupsReal1 1.1/cupsReal2 1.5>>setpagedevice" 1056*5e7646d2SAndroid Build Coastguard Worker*CloseUI: *GammaDensity 1057*5e7646d2SAndroid Build Coastguard Worker 1058*5e7646d2SAndroid Build Coastguard Worker<em>*% Custom PostScript gamma/density option</em> 1059*5e7646d2SAndroid Build Coastguard Worker*CustomGammaDensity True: "<</cupsReal1 3 -1 roll/cupsReal2 5 -1>>setpagedevice" 1060*5e7646d2SAndroid Build Coastguard Worker*ParamCustomGammaDensity Gamma: 1 curve 0.1 10 1061*5e7646d2SAndroid Build Coastguard Worker*ParamCustomGammaDensity Density: 2 real 0 2 1062*5e7646d2SAndroid Build Coastguard Worker</pre> 1063*5e7646d2SAndroid Build Coastguard Worker 1064*5e7646d2SAndroid Build Coastguard Worker 1065*5e7646d2SAndroid Build Coastguard Worker<h2 class='title'><a name='RASTERPS'>Writing PostScript Option Commands for Raster Drivers</a></h2> 1066*5e7646d2SAndroid Build Coastguard Worker 1067*5e7646d2SAndroid Build Coastguard Worker<p>PPD files are used for both PostScript and non-PostScript printers. For CUPS raster drivers, you use a subset of the PostScript language to set page device keywords such as page size, resolution, and so forth. For example, the following code sets the page size to A4 size:</p> 1068*5e7646d2SAndroid Build Coastguard Worker 1069*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1070*5e7646d2SAndroid Build Coastguard Worker*PageSize A4: "<</PageSize[595 842]>>setpagedevice" 1071*5e7646d2SAndroid Build Coastguard Worker</pre> 1072*5e7646d2SAndroid Build Coastguard Worker 1073*5e7646d2SAndroid Build Coastguard Worker<p>Custom options typically use other operators to organize the values into a key/value dictionary for <tt>setpagedevice</tt>. For example, our previous <tt>CustomWatermarkText</tt> option code uses the <tt>roll</tt> operator to move the custom string value into the dictionary for <tt>setpagedevice</tt>:</p> 1074*5e7646d2SAndroid Build Coastguard Worker 1075*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1076*5e7646d2SAndroid Build Coastguard Worker*CustomWatermarkText True: "<</cupsString1 3 -1 roll>>setpagedevice" 1077*5e7646d2SAndroid Build Coastguard Worker</pre> 1078*5e7646d2SAndroid Build Coastguard Worker 1079*5e7646d2SAndroid Build Coastguard Worker<p>For a custom string value of "My Watermark", CUPS will produce the following PostScript code for the option:</p> 1080*5e7646d2SAndroid Build Coastguard Worker 1081*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1082*5e7646d2SAndroid Build Coastguard Worker(My Watermark) 1083*5e7646d2SAndroid Build Coastguard Worker<</cupsString1 3 -1 roll>>setpagedevice 1084*5e7646d2SAndroid Build Coastguard Worker</pre> 1085*5e7646d2SAndroid Build Coastguard Worker 1086*5e7646d2SAndroid Build Coastguard Worker<p>The code moves the string value ("My Watermark") from the bottom of the stack to the top, creating a dictionary that looks like:</p> 1087*5e7646d2SAndroid Build Coastguard Worker 1088*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1089*5e7646d2SAndroid Build Coastguard Worker<</cupsString1(My Watermark)>>setpagedevice 1090*5e7646d2SAndroid Build Coastguard Worker</pre> 1091*5e7646d2SAndroid Build Coastguard Worker 1092*5e7646d2SAndroid Build Coastguard Worker<p>The resulting dictionary sets the page device attributes that are sent to your raster driver in the page header.</p> 1093*5e7646d2SAndroid Build Coastguard Worker 1094*5e7646d2SAndroid Build Coastguard Worker 1095*5e7646d2SAndroid Build Coastguard Worker<h3 class="title">Custom Page Size Code</h3> 1096*5e7646d2SAndroid Build Coastguard Worker 1097*5e7646d2SAndroid Build Coastguard Worker<p>There are many possible implementations of the <tt>CustomPageSize</tt> code. For CUPS raster drivers, the following code is recommended:</p> 1098*5e7646d2SAndroid Build Coastguard Worker 1099*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1100*5e7646d2SAndroid Build Coastguard Worker*ParamCustomPageSize Width: 1 points <i>min-width max-width</i> 1101*5e7646d2SAndroid Build Coastguard Worker*ParamCustomPageSize Height: 2 points <i>min-height max-height</i> 1102*5e7646d2SAndroid Build Coastguard Worker*ParamCustomPageSize WidthOffset: 3 points 0 0 1103*5e7646d2SAndroid Build Coastguard Worker*ParamCustomPageSize HeightOffset: 4 points 0 0 1104*5e7646d2SAndroid Build Coastguard Worker*ParamCustomPageSize Orientation: 5 int 0 0 1105*5e7646d2SAndroid Build Coastguard Worker*CustomPageSize True: "pop pop pop <</PageSize[5 -2 roll]/ImagingBBox null>>setpagedevice" 1106*5e7646d2SAndroid Build Coastguard Worker</pre> 1107*5e7646d2SAndroid Build Coastguard Worker 1108*5e7646d2SAndroid Build Coastguard Worker 1109*5e7646d2SAndroid Build Coastguard Worker<h3 class="title">Supported PostScript Operators</h3> 1110*5e7646d2SAndroid Build Coastguard Worker 1111*5e7646d2SAndroid Build Coastguard Worker<p>CUPS supports the following PostScript operators in addition to the usual PostScript number, string (literal and hex-encoded), boolean, null, and name values:</p> 1112*5e7646d2SAndroid Build Coastguard Worker 1113*5e7646d2SAndroid Build Coastguard Worker<ul> 1114*5e7646d2SAndroid Build Coastguard Worker 1115*5e7646d2SAndroid Build Coastguard Worker <li><tt><<</tt> - Start a dictionary.</li> 1116*5e7646d2SAndroid Build Coastguard Worker 1117*5e7646d2SAndroid Build Coastguard Worker <li><tt>>></tt> - End a dictionary.</li> 1118*5e7646d2SAndroid Build Coastguard Worker 1119*5e7646d2SAndroid Build Coastguard Worker <li><tt>[</tt> - Start an array.</li> 1120*5e7646d2SAndroid Build Coastguard Worker 1121*5e7646d2SAndroid Build Coastguard Worker <li><tt>]</tt> - End an array.</li> 1122*5e7646d2SAndroid Build Coastguard Worker 1123*5e7646d2SAndroid Build Coastguard Worker <li><tt>copy</tt> - Copy the top N objects on the stack.</li> 1124*5e7646d2SAndroid Build Coastguard Worker 1125*5e7646d2SAndroid Build Coastguard Worker <li><tt>dup</tt> - Copy the top object on the stack.</li> 1126*5e7646d2SAndroid Build Coastguard Worker 1127*5e7646d2SAndroid Build Coastguard Worker <li><tt>index</tt> - Copy the Nth from the top object on the stack.</li> 1128*5e7646d2SAndroid Build Coastguard Worker 1129*5e7646d2SAndroid Build Coastguard Worker <li><tt>pop</tt> - Pop the top object on the stack.</li> 1130*5e7646d2SAndroid Build Coastguard Worker 1131*5e7646d2SAndroid Build Coastguard Worker <li><tt>roll</tt> - Shift the top N objects on the stack.</li> 1132*5e7646d2SAndroid Build Coastguard Worker 1133*5e7646d2SAndroid Build Coastguard Worker <li><tt>setpagedevice</tt> - Set the page header values according to the key/value dictionary on the stack.</li> 1134*5e7646d2SAndroid Build Coastguard Worker 1135*5e7646d2SAndroid Build Coastguard Worker</ul> 1136*5e7646d2SAndroid Build Coastguard Worker 1137*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b> 1138*5e7646d2SAndroid Build Coastguard Worker 1139*5e7646d2SAndroid Build Coastguard Worker<p><em>Never</em> use the unsupported <tt>dict</tt> or <tt>put</tt> 1140*5e7646d2SAndroid Build Coastguard Workeroperators in your option code. These operators are typically used in 1141*5e7646d2SAndroid Build Coastguard Workeroption code dating back to Level 1 PostScript printers, which did not 1142*5e7646d2SAndroid Build Coastguard Workersupport the simpler <tt><<</tt> or <tt>>></tt> operators. 1143*5e7646d2SAndroid Build Coastguard WorkerIf you have old option code using <tt>dict</tt> or <tt>put</tt>, you can 1144*5e7646d2SAndroid Build Coastguard Workerrewrite it very easily to use the newer <tt><<</tt> and 1145*5e7646d2SAndroid Build Coastguard Worker<tt>>></tt> operators instead. For example, the following code 1146*5e7646d2SAndroid Build Coastguard Workerto set the page size:</p> 1147*5e7646d2SAndroid Build Coastguard Worker 1148*5e7646d2SAndroid Build Coastguard Worker<style type='text/css'><!-- 1149*5e7646d2SAndroid Build Coastguard WorkerPRE B { 1150*5e7646d2SAndroid Build Coastguard Worker background: #000000; 1151*5e7646d2SAndroid Build Coastguard Worker color: #ffffff; 1152*5e7646d2SAndroid Build Coastguard Worker padding: 2px 5px; 1153*5e7646d2SAndroid Build Coastguard Worker} 1154*5e7646d2SAndroid Build Coastguard Worker--></style> 1155*5e7646d2SAndroid Build Coastguard Worker 1156*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1157*5e7646d2SAndroid Build Coastguard Worker<b>1 dict dup</b> /PageSize [612 792] <b>put</b> setpagedevice 1158*5e7646d2SAndroid Build Coastguard Worker</pre> 1159*5e7646d2SAndroid Build Coastguard Worker 1160*5e7646d2SAndroid Build Coastguard Worker<p>can be rewritten as:</p> 1161*5e7646d2SAndroid Build Coastguard Worker 1162*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1163*5e7646d2SAndroid Build Coastguard Worker<b><<</b> /PageSize [612 792] <b>>></b> setpagedevice 1164*5e7646d2SAndroid Build Coastguard Worker</pre> 1165*5e7646d2SAndroid Build Coastguard Worker 1166*5e7646d2SAndroid Build Coastguard Worker</blockquote> 1167*5e7646d2SAndroid Build Coastguard Worker 1168*5e7646d2SAndroid Build Coastguard Worker 1169*5e7646d2SAndroid Build Coastguard Worker<h3 class="title">Supported Page Device Attributes</h3> 1170*5e7646d2SAndroid Build Coastguard Worker 1171*5e7646d2SAndroid Build Coastguard Worker<p>Table 2 shows the supported page device attributes along with PostScript code examples.</p> 1172*5e7646d2SAndroid Build Coastguard Worker 1173*5e7646d2SAndroid Build Coastguard Worker<div class='table'> 1174*5e7646d2SAndroid Build Coastguard Worker<table summary='Supported Page Device Attributes'> 1175*5e7646d2SAndroid Build Coastguard Worker<caption>Table 2: <a name='TABLE_2'>Supported Page Device Attributes</a></caption> 1176*5e7646d2SAndroid Build Coastguard Worker<thead> 1177*5e7646d2SAndroid Build Coastguard Worker<tr> 1178*5e7646d2SAndroid Build Coastguard Worker <th>Name(s)</th> 1179*5e7646d2SAndroid Build Coastguard Worker <th>Type</th> 1180*5e7646d2SAndroid Build Coastguard Worker <th>Description</th> 1181*5e7646d2SAndroid Build Coastguard Worker <th>Example(s)</th> 1182*5e7646d2SAndroid Build Coastguard Worker</tr> 1183*5e7646d2SAndroid Build Coastguard Worker</thead> 1184*5e7646d2SAndroid Build Coastguard Worker<tbody> 1185*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1186*5e7646d2SAndroid Build Coastguard Worker <td><tt>AdvanceDistance</tt></td> 1187*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1188*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the number of points to advance roll media after printing.</td> 1189*5e7646d2SAndroid Build Coastguard Worker <td><tt><</AdvanceDistance 18>>setpagedevice</tt></td> 1190*5e7646d2SAndroid Build Coastguard Worker</tr> 1191*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1192*5e7646d2SAndroid Build Coastguard Worker <td><tt>AdvanceMedia</tt></td> 1193*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1194*5e7646d2SAndroid Build Coastguard Worker <td>Specifies when to advance the media: 0 = never, 1 = after the file, 2 = after the job, 3 = after the set, and 4 = after the page.</td> 1195*5e7646d2SAndroid Build Coastguard Worker <td><tt><</AdvanceMedia 4>>setpagedevice</tt></td> 1196*5e7646d2SAndroid Build Coastguard Worker</tr> 1197*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1198*5e7646d2SAndroid Build Coastguard Worker <td><tt>Collate</tt></td> 1199*5e7646d2SAndroid Build Coastguard Worker <td>Boolean</td> 1200*5e7646d2SAndroid Build Coastguard Worker <td>Specifies whether collated copies are required.</td> 1201*5e7646d2SAndroid Build Coastguard Worker <td><tt><</Collate true>>setpagedevice</tt></td> 1202*5e7646d2SAndroid Build Coastguard Worker</tr> 1203*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1204*5e7646d2SAndroid Build Coastguard Worker <td><tt>CutMedia</tt></td> 1205*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1206*5e7646d2SAndroid Build Coastguard Worker <td>Specifies when to cut the media: 0 = never, 1 = after the file, 2 = after the job, 3 = after the set, and 4 = after the page.</td> 1207*5e7646d2SAndroid Build Coastguard Worker <td><tt><</CutMedia 1>>setpagedevice</tt></td> 1208*5e7646d2SAndroid Build Coastguard Worker</tr> 1209*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1210*5e7646d2SAndroid Build Coastguard Worker <td><tt>Duplex</tt></td> 1211*5e7646d2SAndroid Build Coastguard Worker <td>Boolean</td> 1212*5e7646d2SAndroid Build Coastguard Worker <td>Specifies whether 2-sided printing is required.</td> 1213*5e7646d2SAndroid Build Coastguard Worker <td><tt><</Duplex true>>setpagedevice</tt></td> 1214*5e7646d2SAndroid Build Coastguard Worker</tr> 1215*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1216*5e7646d2SAndroid Build Coastguard Worker <td><tt>HWResolution</tt></td> 1217*5e7646d2SAndroid Build Coastguard Worker <td>Integer Array</td> 1218*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the resolution of the page image in pixels per inch.</td> 1219*5e7646d2SAndroid Build Coastguard Worker <td><tt><</HWResolution[1200 1200]>>setpagedevice</tt></td> 1220*5e7646d2SAndroid Build Coastguard Worker</tr> 1221*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1222*5e7646d2SAndroid Build Coastguard Worker <td><tt>InsertSheet</tt></td> 1223*5e7646d2SAndroid Build Coastguard Worker <td>Boolean</td> 1224*5e7646d2SAndroid Build Coastguard Worker <td>Specifies whether to insert a blank sheet before the job.</td> 1225*5e7646d2SAndroid Build Coastguard Worker <td><tt><</InsertSheet true>>setpagedevice</tt></td> 1226*5e7646d2SAndroid Build Coastguard Worker</tr> 1227*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1228*5e7646d2SAndroid Build Coastguard Worker <td><tt>Jog</tt></td> 1229*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1230*5e7646d2SAndroid Build Coastguard Worker <td>Specifies when to shift the media in the output bin: 0 = never, 1 = after the file, 2 = after the job, 3 = after the set, and 4 = after the page.</td> 1231*5e7646d2SAndroid Build Coastguard Worker <td><tt><</Jog 2>>setpagedevice</tt></td> 1232*5e7646d2SAndroid Build Coastguard Worker</tr> 1233*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1234*5e7646d2SAndroid Build Coastguard Worker <td><tt>LeadingEdge</tt></td> 1235*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1236*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the leading edge of the media: 0 = top, 1 = right, 2 = bottom, 3 = left.</td> 1237*5e7646d2SAndroid Build Coastguard Worker <td><tt><</LeadingEdge 0>>setpagedevice</tt></td> 1238*5e7646d2SAndroid Build Coastguard Worker</tr> 1239*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1240*5e7646d2SAndroid Build Coastguard Worker <td><tt>ManualFeed</tt></td> 1241*5e7646d2SAndroid Build Coastguard Worker <td>Boolean</td> 1242*5e7646d2SAndroid Build Coastguard Worker <td>Specifies whether media should be drawn from the manual feed tray. Note: The <tt>MediaPosition</tt> attribute is preferred over the <tt>ManualFeed</tt> attribute.</td> 1243*5e7646d2SAndroid Build Coastguard Worker <td><tt><</ManualFeed true>>setpagedevice</tt></td> 1244*5e7646d2SAndroid Build Coastguard Worker</tr> 1245*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1246*5e7646d2SAndroid Build Coastguard Worker <td><tt>MediaClass</tt></td> 1247*5e7646d2SAndroid Build Coastguard Worker <td>String</td> 1248*5e7646d2SAndroid Build Coastguard Worker <td>Specifies a named media.</td> 1249*5e7646d2SAndroid Build Coastguard Worker <td><tt><</MediaClass (Invoices)>>setpagedevice</tt></td> 1250*5e7646d2SAndroid Build Coastguard Worker</tr> 1251*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1252*5e7646d2SAndroid Build Coastguard Worker <td><tt>MediaColor</tt></td> 1253*5e7646d2SAndroid Build Coastguard Worker <td>String</td> 1254*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the color of the media.</td> 1255*5e7646d2SAndroid Build Coastguard Worker <td><tt><</MediaColor >>setpagedevice</tt></td> 1256*5e7646d2SAndroid Build Coastguard Worker</tr> 1257*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1258*5e7646d2SAndroid Build Coastguard Worker <td><tt>MediaPosition</tt></td> 1259*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1260*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the tray or source of the media.</td> 1261*5e7646d2SAndroid Build Coastguard Worker <td><tt><</MediaPosition 12>>setpagedevice</tt></td> 1262*5e7646d2SAndroid Build Coastguard Worker</tr> 1263*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1264*5e7646d2SAndroid Build Coastguard Worker <td><tt>MediaType</tt></td> 1265*5e7646d2SAndroid Build Coastguard Worker <td>String</td> 1266*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the general media type.</td> 1267*5e7646d2SAndroid Build Coastguard Worker <td><tt><</MediaType (Glossy)>>setpagedevice</tt></td> 1268*5e7646d2SAndroid Build Coastguard Worker</tr> 1269*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1270*5e7646d2SAndroid Build Coastguard Worker <td><tt>MediaWeight</tt></td> 1271*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1272*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the media weight in grams per meter<sup>2</sup>.</td> 1273*5e7646d2SAndroid Build Coastguard Worker <td><tt><</MediaWeight 100>>setpagedevice</tt></td> 1274*5e7646d2SAndroid Build Coastguard Worker</tr> 1275*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1276*5e7646d2SAndroid Build Coastguard Worker <td><tt>MirrorPrint</tt></td> 1277*5e7646d2SAndroid Build Coastguard Worker <td>Boolean</td> 1278*5e7646d2SAndroid Build Coastguard Worker <td>Specifies whether to flip the output image horizontally.</td> 1279*5e7646d2SAndroid Build Coastguard Worker <td><tt><</MirrorPrint true>>setpagedevice</tt></td> 1280*5e7646d2SAndroid Build Coastguard Worker</tr> 1281*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1282*5e7646d2SAndroid Build Coastguard Worker <td><tt>NegativePrint</tt></td> 1283*5e7646d2SAndroid Build Coastguard Worker <td>Boolean</td> 1284*5e7646d2SAndroid Build Coastguard Worker <td>Specifies whether to invert the output image.</td> 1285*5e7646d2SAndroid Build Coastguard Worker <td><tt><</NegativePrint true>>setpagedevice</tt></td> 1286*5e7646d2SAndroid Build Coastguard Worker</tr> 1287*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1288*5e7646d2SAndroid Build Coastguard Worker <td><tt>NumCopies</tt></td> 1289*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1290*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the number of copies to produce of each page.</td> 1291*5e7646d2SAndroid Build Coastguard Worker <td><tt><</NumCopies 100>>setpagedevice</tt></td> 1292*5e7646d2SAndroid Build Coastguard Worker</tr> 1293*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1294*5e7646d2SAndroid Build Coastguard Worker <td><tt>Orientation</tt></td> 1295*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1296*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the orientation of the output: 0 = portrait, 1 = landscape rotated counter-clockwise, 2 = upside-down, 3 = landscape rotated clockwise.</td> 1297*5e7646d2SAndroid Build Coastguard Worker <td><tt><</Orientation 3>>setpagedevice</tt></td> 1298*5e7646d2SAndroid Build Coastguard Worker</tr> 1299*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1300*5e7646d2SAndroid Build Coastguard Worker <td><tt>OutputFaceUp</tt></td> 1301*5e7646d2SAndroid Build Coastguard Worker <td>Boolean</td> 1302*5e7646d2SAndroid Build Coastguard Worker <td>Specifies whether to place the media face-up in the output bin/tray.</td> 1303*5e7646d2SAndroid Build Coastguard Worker <td><tt><</OutputFaceUp true>>setpagedevice</tt></td> 1304*5e7646d2SAndroid Build Coastguard Worker</tr> 1305*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1306*5e7646d2SAndroid Build Coastguard Worker <td><tt>OutputType</tt></td> 1307*5e7646d2SAndroid Build Coastguard Worker <td>String</td> 1308*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the output type name.</td> 1309*5e7646d2SAndroid Build Coastguard Worker <td><tt><</OutputType (Photo)>>setpagedevice</tt></td> 1310*5e7646d2SAndroid Build Coastguard Worker</tr> 1311*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1312*5e7646d2SAndroid Build Coastguard Worker <td><tt>PageSize</tt></td> 1313*5e7646d2SAndroid Build Coastguard Worker <td>Integer/Real Array</td> 1314*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the width and length/height of the page in points.</td> 1315*5e7646d2SAndroid Build Coastguard Worker <td><tt><</PageSize[595 842]>>setpagedevice</tt></td> 1316*5e7646d2SAndroid Build Coastguard Worker</tr> 1317*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1318*5e7646d2SAndroid Build Coastguard Worker <td><tt>Separations</tt></td> 1319*5e7646d2SAndroid Build Coastguard Worker <td>Boolean</td> 1320*5e7646d2SAndroid Build Coastguard Worker <td>Specifies whether to produce color separations.</td> 1321*5e7646d2SAndroid Build Coastguard Worker <td><tt><</Separations true>>setpagedevice</tt></td> 1322*5e7646d2SAndroid Build Coastguard Worker</tr> 1323*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1324*5e7646d2SAndroid Build Coastguard Worker <td><tt>TraySwitch</tt></td> 1325*5e7646d2SAndroid Build Coastguard Worker <td>Boolean</td> 1326*5e7646d2SAndroid Build Coastguard Worker <td>Specifies whether to switch trays automatically.</td> 1327*5e7646d2SAndroid Build Coastguard Worker <td><tt><</TraySwitch true>>setpagedevice</tt></td> 1328*5e7646d2SAndroid Build Coastguard Worker</tr> 1329*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1330*5e7646d2SAndroid Build Coastguard Worker <td><tt>Tumble</tt></td> 1331*5e7646d2SAndroid Build Coastguard Worker <td>Boolean</td> 1332*5e7646d2SAndroid Build Coastguard Worker <td>Specifies whether the back sides of pages are rotated 180 degrees.</td> 1333*5e7646d2SAndroid Build Coastguard Worker <td><tt><</Tumble true>>setpagedevice</tt></td> 1334*5e7646d2SAndroid Build Coastguard Worker</tr> 1335*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1336*5e7646d2SAndroid Build Coastguard Worker <td><tt>cupsBorderlessScalingFactor</tt></td> 1337*5e7646d2SAndroid Build Coastguard Worker <td>Real</td> 1338*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the amount to scale the page image dimensions.</td> 1339*5e7646d2SAndroid Build Coastguard Worker <td><tt><</cupsBorderlessScalingFactor 1.01>>setpagedevice</tt></td> 1340*5e7646d2SAndroid Build Coastguard Worker</tr> 1341*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1342*5e7646d2SAndroid Build Coastguard Worker <td><tt>cupsColorOrder</tt></td> 1343*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1344*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the order of colors: 0 = chunked, 1 = banded, 2 = planar.</td> 1345*5e7646d2SAndroid Build Coastguard Worker <td><tt><</cupsColorOrder 0>>setpagedevice</tt></td> 1346*5e7646d2SAndroid Build Coastguard Worker</tr> 1347*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1348*5e7646d2SAndroid Build Coastguard Worker <td><tt>cupsColorSpace</tt></td> 1349*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1350*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the page image colorspace: 0 = W, 1 = RGB, 2 = RGBA, 3 = K, 4 = CMY, 5 = YMC, 6 = CMYK, 7 = YMCK, 8 = KCMY, 9 = KCMYcm, 10 = GMCK, 11 = GMCS, 12 = White, 13 = Gold, 14 = Silver, 15 = CIE XYZ, 16 = CIE Lab, 17 = RGBW, 32 to 46 = CIE Lab (1 to 15 inks)</td> 1351*5e7646d2SAndroid Build Coastguard Worker <td><tt><</cupsColorSpace 1 >>setpagedevice</tt></td> 1352*5e7646d2SAndroid Build Coastguard Worker</tr> 1353*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1354*5e7646d2SAndroid Build Coastguard Worker <td><tt>cupsCompression</tt></td> 1355*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1356*5e7646d2SAndroid Build Coastguard Worker <td>Specifies a driver compression type/mode.</td> 1357*5e7646d2SAndroid Build Coastguard Worker <td><tt><</cupsCompression 2>>setpagedevice</tt></td> 1358*5e7646d2SAndroid Build Coastguard Worker</tr> 1359*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1360*5e7646d2SAndroid Build Coastguard Worker <td><tt>cupsInteger0<br> 1361*5e7646d2SAndroid Build Coastguard Worker ...<br> 1362*5e7646d2SAndroid Build Coastguard Worker cupsInteger15</tt></td> 1363*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1364*5e7646d2SAndroid Build Coastguard Worker <td>Specifies driver integer values.</td> 1365*5e7646d2SAndroid Build Coastguard Worker <td><tt><</cupsInteger11 1234>>setpagedevice</tt></td> 1366*5e7646d2SAndroid Build Coastguard Worker</tr> 1367*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1368*5e7646d2SAndroid Build Coastguard Worker <td><tt>cupsMarkerType</tt></td> 1369*5e7646d2SAndroid Build Coastguard Worker <td>String</td> 1370*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the type of ink/toner to use.</td> 1371*5e7646d2SAndroid Build Coastguard Worker <td><tt><</cupsMarkerType (Black+Color)>>setpagedevice</tt></td> 1372*5e7646d2SAndroid Build Coastguard Worker</tr> 1373*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1374*5e7646d2SAndroid Build Coastguard Worker <td><tt>cupsMediaType</tt></td> 1375*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1376*5e7646d2SAndroid Build Coastguard Worker <td>Specifies a numeric media type.</td> 1377*5e7646d2SAndroid Build Coastguard Worker <td><tt><</cupsMediaType 999>>setpagedevice</tt></td> 1378*5e7646d2SAndroid Build Coastguard Worker</tr> 1379*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1380*5e7646d2SAndroid Build Coastguard Worker <td><tt>cupsPageSizeName</tt></td> 1381*5e7646d2SAndroid Build Coastguard Worker <td>String</td> 1382*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the name of the page size.</td> 1383*5e7646d2SAndroid Build Coastguard Worker <td><tt><</cupsPageSizeName (A4.Full)>>setpagedevice</tt></td> 1384*5e7646d2SAndroid Build Coastguard Worker</tr> 1385*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1386*5e7646d2SAndroid Build Coastguard Worker <td><tt>cupsPreferredBitsPerColor</tt></td> 1387*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1388*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the preferred number of bits per color, typically 8 or 16.</td> 1389*5e7646d2SAndroid Build Coastguard Worker <td><tt><</cupsPreferredBitsPerColor 16>>setpagedevice</tt></td> 1390*5e7646d2SAndroid Build Coastguard Worker</tr> 1391*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1392*5e7646d2SAndroid Build Coastguard Worker <td><tt>cupsReal0<br> 1393*5e7646d2SAndroid Build Coastguard Worker ...<br> 1394*5e7646d2SAndroid Build Coastguard Worker cupsReal15</tt></td> 1395*5e7646d2SAndroid Build Coastguard Worker <td>Real</td> 1396*5e7646d2SAndroid Build Coastguard Worker <td>Specifies driver real number values.</td> 1397*5e7646d2SAndroid Build Coastguard Worker <td><tt><</cupsReal15 1.234>>setpagedevice</tt></td> 1398*5e7646d2SAndroid Build Coastguard Worker</tr> 1399*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1400*5e7646d2SAndroid Build Coastguard Worker <td><tt>cupsRenderingIntent</tt></td> 1401*5e7646d2SAndroid Build Coastguard Worker <td>String</td> 1402*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the color rendering intent.</td> 1403*5e7646d2SAndroid Build Coastguard Worker <td><tt><</cupsRenderingIntent (AbsoluteColorimetric)>>setpagedevice</tt></td> 1404*5e7646d2SAndroid Build Coastguard Worker</tr> 1405*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1406*5e7646d2SAndroid Build Coastguard Worker <td><tt>cupsRowCount</tt></td> 1407*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1408*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the number of rows of raster data to print on each line for some drivers.</td> 1409*5e7646d2SAndroid Build Coastguard Worker <td><tt><</cupsRowCount 24>>setpagedevice</tt></td> 1410*5e7646d2SAndroid Build Coastguard Worker</tr> 1411*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1412*5e7646d2SAndroid Build Coastguard Worker <td><tt>cupsRowFeed</tt></td> 1413*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1414*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the number of rows to feed between passes for some drivers.</td> 1415*5e7646d2SAndroid Build Coastguard Worker <td><tt><</cupsRowFeed 17>>setpagedevice</tt></td> 1416*5e7646d2SAndroid Build Coastguard Worker</tr> 1417*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1418*5e7646d2SAndroid Build Coastguard Worker <td><tt>cupsRowStep</tt></td> 1419*5e7646d2SAndroid Build Coastguard Worker <td>Integer</td> 1420*5e7646d2SAndroid Build Coastguard Worker <td>Specifies the number of lines between columns/rows on the print head for some drivers.</td> 1421*5e7646d2SAndroid Build Coastguard Worker <td><tt><</cupsRowStep 2>>setpagedevice</tt></td> 1422*5e7646d2SAndroid Build Coastguard Worker</tr> 1423*5e7646d2SAndroid Build Coastguard Worker<tr valign='top'> 1424*5e7646d2SAndroid Build Coastguard Worker <td><tt>cupsString0<br> 1425*5e7646d2SAndroid Build Coastguard Worker ...<br> 1426*5e7646d2SAndroid Build Coastguard Worker cupsString15</tt></td> 1427*5e7646d2SAndroid Build Coastguard Worker <td>String</td> 1428*5e7646d2SAndroid Build Coastguard Worker <td>Specifies driver string values.</td> 1429*5e7646d2SAndroid Build Coastguard Worker <td><tt><</cupsString0(String Value)>>setpagedevice</tt></td> 1430*5e7646d2SAndroid Build Coastguard Worker</tr> 1431*5e7646d2SAndroid Build Coastguard Worker</tbody> 1432*5e7646d2SAndroid Build Coastguard Worker</table></div> 1433*5e7646d2SAndroid Build Coastguard Worker 1434*5e7646d2SAndroid Build Coastguard Worker 1435*5e7646d2SAndroid Build Coastguard Worker<h2 class='title'><a name='MEDIA'>Media Keywords</a></h2> 1436*5e7646d2SAndroid Build Coastguard Worker 1437*5e7646d2SAndroid Build Coastguard Worker<p>The CUPS media keywords allow drivers to specify alternate custom page 1438*5e7646d2SAndroid Build Coastguard Workersize limits based on up to two options.</p> 1439*5e7646d2SAndroid Build Coastguard Worker 1440*5e7646d2SAndroid Build Coastguard Worker 1441*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMediaQualifier2'>cupsMediaQualifier2</a></h3> 1442*5e7646d2SAndroid Build Coastguard Worker 1443*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsMediaQualifier2: MainKeyword</p> 1444*5e7646d2SAndroid Build Coastguard Worker 1445*5e7646d2SAndroid Build Coastguard Worker<p>This keyword specifies the second option to use for overriding the 1446*5e7646d2SAndroid Build Coastguard Workercustom page size limits.</p> 1447*5e7646d2SAndroid Build Coastguard Worker 1448*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 1449*5e7646d2SAndroid Build Coastguard Worker 1450*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1451*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify alternate custom page size limits based on InputSlot and Quality</em> 1452*5e7646d2SAndroid Build Coastguard Worker*cupsMediaQualifier2: InputSlot 1453*5e7646d2SAndroid Build Coastguard Worker*cupsMediaQualifier3: Quality 1454*5e7646d2SAndroid Build Coastguard Worker*cupsMaxSize .Manual.: "1000 1000" 1455*5e7646d2SAndroid Build Coastguard Worker*cupsMinSize .Manual.: "100 100" 1456*5e7646d2SAndroid Build Coastguard Worker*cupsMinSize .Manual.Photo: "200 200" 1457*5e7646d2SAndroid Build Coastguard Worker*cupsMinSize ..Photo: "300 300" 1458*5e7646d2SAndroid Build Coastguard Worker</pre> 1459*5e7646d2SAndroid Build Coastguard Worker 1460*5e7646d2SAndroid Build Coastguard Worker 1461*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMediaQualifier3'>cupsMediaQualifier3</a></h3> 1462*5e7646d2SAndroid Build Coastguard Worker 1463*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsMediaQualifier3: MainKeyword</p> 1464*5e7646d2SAndroid Build Coastguard Worker 1465*5e7646d2SAndroid Build Coastguard Worker<p>This keyword specifies the third option to use for overriding the 1466*5e7646d2SAndroid Build Coastguard Workercustom page size limits.</p> 1467*5e7646d2SAndroid Build Coastguard Worker 1468*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 1469*5e7646d2SAndroid Build Coastguard Worker 1470*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1471*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify alternate custom page size limits based on InputSlot and Quality</em> 1472*5e7646d2SAndroid Build Coastguard Worker*cupsMediaQualifier2: InputSlot 1473*5e7646d2SAndroid Build Coastguard Worker*cupsMediaQualifier3: Quality 1474*5e7646d2SAndroid Build Coastguard Worker*cupsMaxSize .Manual.: "1000 1000" 1475*5e7646d2SAndroid Build Coastguard Worker*cupsMinSize .Manual.: "100 100" 1476*5e7646d2SAndroid Build Coastguard Worker*cupsMinSize .Manual.Photo: "200 200" 1477*5e7646d2SAndroid Build Coastguard Worker*cupsMinSize ..Photo: "300 300" 1478*5e7646d2SAndroid Build Coastguard Worker</pre> 1479*5e7646d2SAndroid Build Coastguard Worker 1480*5e7646d2SAndroid Build Coastguard Worker 1481*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMinSize'>cupsMinSize</a></h3> 1482*5e7646d2SAndroid Build Coastguard Worker 1483*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsMinSize .Qualifier2.Qualifier3: "width length"<br> 1484*5e7646d2SAndroid Build Coastguard Worker*cupsMinSize .Qualifier2.: "width length"<br> 1485*5e7646d2SAndroid Build Coastguard Worker*cupsMinSize ..Qualifier3: "width length"</p> 1486*5e7646d2SAndroid Build Coastguard Worker 1487*5e7646d2SAndroid Build Coastguard Worker<p>This keyword specifies alternate minimum custom page sizes in points. 1488*5e7646d2SAndroid Build Coastguard WorkerThe <a href='#cupsMediaQualifier2'><tt>cupsMediaQualifier2</tt></a> and 1489*5e7646d2SAndroid Build Coastguard Worker<a href='#cupsMediaQualifier3'><tt>cupsMediaQualifier3</tt></a> keywords 1490*5e7646d2SAndroid Build Coastguard Workerare used to identify options to use for matching.</p> 1491*5e7646d2SAndroid Build Coastguard Worker 1492*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 1493*5e7646d2SAndroid Build Coastguard Worker 1494*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1495*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify alternate custom page size limits based on InputSlot and Quality</em> 1496*5e7646d2SAndroid Build Coastguard Worker*cupsMediaQualifier2: InputSlot 1497*5e7646d2SAndroid Build Coastguard Worker*cupsMediaQualifier3: Quality 1498*5e7646d2SAndroid Build Coastguard Worker*cupsMaxSize .Manual.: "1000 1000" 1499*5e7646d2SAndroid Build Coastguard Worker*cupsMinSize .Manual.: "100 100" 1500*5e7646d2SAndroid Build Coastguard Worker*cupsMinSize .Manual.Photo: "200 200" 1501*5e7646d2SAndroid Build Coastguard Worker*cupsMinSize ..Photo: "300 300" 1502*5e7646d2SAndroid Build Coastguard Worker</pre> 1503*5e7646d2SAndroid Build Coastguard Worker 1504*5e7646d2SAndroid Build Coastguard Worker 1505*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMaxSize'>cupsMaxSize</a></h3> 1506*5e7646d2SAndroid Build Coastguard Worker 1507*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsMaxSize .Qualifier2.Qualifier3: "width length"<br> 1508*5e7646d2SAndroid Build Coastguard Worker*cupsMaxSize .Qualifier2.: "width length"<br> 1509*5e7646d2SAndroid Build Coastguard Worker*cupsMaxSize ..Qualifier3: "width length"</p> 1510*5e7646d2SAndroid Build Coastguard Worker 1511*5e7646d2SAndroid Build Coastguard Worker<p>This keyword specifies alternate maximum custom page sizes in points. 1512*5e7646d2SAndroid Build Coastguard WorkerThe <a href='#cupsMediaQualifier2'><tt>cupsMediaQualifier2</tt></a> and 1513*5e7646d2SAndroid Build Coastguard Worker<a href='#cupsMediaQualifier3'><tt>cupsMediaQualifier3</tt></a> keywords 1514*5e7646d2SAndroid Build Coastguard Workerare used to identify options to use for matching.</p> 1515*5e7646d2SAndroid Build Coastguard Worker 1516*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 1517*5e7646d2SAndroid Build Coastguard Worker 1518*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1519*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify alternate custom page size limits based on InputSlot and Quality</em> 1520*5e7646d2SAndroid Build Coastguard Worker*cupsMediaQualifier2: InputSlot 1521*5e7646d2SAndroid Build Coastguard Worker*cupsMediaQualifier3: Quality 1522*5e7646d2SAndroid Build Coastguard Worker*cupsMaxSize .Manual.: "1000 1000" 1523*5e7646d2SAndroid Build Coastguard Worker*cupsMinSize .Manual.: "100 100" 1524*5e7646d2SAndroid Build Coastguard Worker*cupsMinSize .Manual.Photo: "200 200" 1525*5e7646d2SAndroid Build Coastguard Worker*cupsMinSize ..Photo: "300 300" 1526*5e7646d2SAndroid Build Coastguard Worker</pre> 1527*5e7646d2SAndroid Build Coastguard Worker 1528*5e7646d2SAndroid Build Coastguard Worker 1529*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsPageSizeCategory'>cupsPageSizeCategory</a></h3> 1530*5e7646d2SAndroid Build Coastguard Worker 1531*5e7646d2SAndroid Build Coastguard Worker<p class="summary">*cupsPageSizeCategory name/text: "name name2 ... nameN"</p> 1532*5e7646d2SAndroid Build Coastguard Worker 1533*5e7646d2SAndroid Build Coastguard Worker<p>This keyword lists related paper size names that should be grouped together in the Print or Page Setup dialogs. The "name" portion of the keyword specifies the root/default size for the grouping. On macOS the grouped paper sizes are shown in a submenu of the main paper size. When omitted, sizes with the same dimensions are automatically grouped together, for example "Letter" and "Letter.Borderless".</p> 1534*5e7646d2SAndroid Build Coastguard Worker 1535*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 1536*5e7646d2SAndroid Build Coastguard Worker 1537*5e7646d2SAndroid Build Coastguard Worker<pre class="command"> 1538*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify grouping of borderless/non-borderless sizes</em> 1539*5e7646d2SAndroid Build Coastguard Worker*cupsPageSizeCategory Letter/US Letter: "Letter Letter.Borderless" 1540*5e7646d2SAndroid Build Coastguard Worker*cupsPageSizeCategory A4/A4: "A4 A4.Borderless" 1541*5e7646d2SAndroid Build Coastguard Worker</pre> 1542*5e7646d2SAndroid Build Coastguard Worker 1543*5e7646d2SAndroid Build Coastguard Worker 1544*5e7646d2SAndroid Build Coastguard Worker<h2 class='title'><a name='ATTRIBUTES'>General Attributes</a></h2> 1545*5e7646d2SAndroid Build Coastguard Worker 1546*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsBackSide'>cupsBackSide</a></h3> 1547*5e7646d2SAndroid Build Coastguard Worker 1548*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsBackSide: keyword</p> 1549*5e7646d2SAndroid Build Coastguard Worker 1550*5e7646d2SAndroid Build Coastguard Worker<p>This keyword requests special handling of the back side of pages 1551*5e7646d2SAndroid Build Coastguard Workerwhen doing duplexed (2-sided) output. <a href='#TABLE_1'>Table 1</a> 1552*5e7646d2SAndroid Build Coastguard Workershows the supported keyword values for this keyword and their effect 1553*5e7646d2SAndroid Build Coastguard Workeron the raster data sent to your driver. For example, when <tt>cupsBackSide</tt> 1554*5e7646d2SAndroid Build Coastguard Workeris <code>Rotated</code> and <tt>Tumble</tt> is <tt>false</tt>, your driver 1555*5e7646d2SAndroid Build Coastguard Workerwill receive print data starting at the bottom right corner of the page, with 1556*5e7646d2SAndroid Build Coastguard Workereach line going right-to-left instead of left-to-right. The default value is 1557*5e7646d2SAndroid Build Coastguard Worker<code>Normal</code>.</p> 1558*5e7646d2SAndroid Build Coastguard Worker 1559*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b> 1560*5e7646d2SAndroid Build Coastguard Worker 1561*5e7646d2SAndroid Build Coastguard Worker<p><tt>cupsBackSide</tt> replaces the older <tt>cupsFlipDuplex</tt> 1562*5e7646d2SAndroid Build Coastguard Workerkeyword - if <tt>cupsBackSide</tt> is specified, <tt>cupsFlipDuplex</tt> 1563*5e7646d2SAndroid Build Coastguard Workerwill be ignored.</p> 1564*5e7646d2SAndroid Build Coastguard Worker 1565*5e7646d2SAndroid Build Coastguard Worker</blockquote> 1566*5e7646d2SAndroid Build Coastguard Worker 1567*5e7646d2SAndroid Build Coastguard Worker<div class='table'> 1568*5e7646d2SAndroid Build Coastguard Worker<table width='80%' summary='Back Side Raster Coordinate System'> 1569*5e7646d2SAndroid Build Coastguard Worker<caption>Table 1: <a name='TABLE_1'>Back Side Raster Coordinate System</a></caption> 1570*5e7646d2SAndroid Build Coastguard Worker<thead> 1571*5e7646d2SAndroid Build Coastguard Worker<tr> 1572*5e7646d2SAndroid Build Coastguard Worker <th>cupsBackSide</th> 1573*5e7646d2SAndroid Build Coastguard Worker <th>Tumble Value</th> 1574*5e7646d2SAndroid Build Coastguard Worker <th>Image Presentation</th> 1575*5e7646d2SAndroid Build Coastguard Worker</tr> 1576*5e7646d2SAndroid Build Coastguard Worker</thead> 1577*5e7646d2SAndroid Build Coastguard Worker<tbody> 1578*5e7646d2SAndroid Build Coastguard Worker<tr> 1579*5e7646d2SAndroid Build Coastguard Worker <td><code>Normal</code></td> 1580*5e7646d2SAndroid Build Coastguard Worker <td><code>false</code></td> 1581*5e7646d2SAndroid Build Coastguard Worker <td>Left-to-right, top-to-bottom</td> 1582*5e7646d2SAndroid Build Coastguard Worker</tr> 1583*5e7646d2SAndroid Build Coastguard Worker<tr> 1584*5e7646d2SAndroid Build Coastguard Worker <td><code>Normal</code></td> 1585*5e7646d2SAndroid Build Coastguard Worker <td><code>true</code></td> 1586*5e7646d2SAndroid Build Coastguard Worker <td>Left-to-right, top-to-bottom</td> 1587*5e7646d2SAndroid Build Coastguard Worker</tr> 1588*5e7646d2SAndroid Build Coastguard Worker<tr> 1589*5e7646d2SAndroid Build Coastguard Worker <td><code>ManualTumble</code></td> 1590*5e7646d2SAndroid Build Coastguard Worker <td><code>false</code></td> 1591*5e7646d2SAndroid Build Coastguard Worker <td>Left-to-right, top-to-bottom</td> 1592*5e7646d2SAndroid Build Coastguard Worker</tr> 1593*5e7646d2SAndroid Build Coastguard Worker<tr> 1594*5e7646d2SAndroid Build Coastguard Worker <td><code>ManualTumble</code></td> 1595*5e7646d2SAndroid Build Coastguard Worker <td><code>true</code></td> 1596*5e7646d2SAndroid Build Coastguard Worker <td>Right-to-left, bottom-to-top</td> 1597*5e7646d2SAndroid Build Coastguard Worker</tr> 1598*5e7646d2SAndroid Build Coastguard Worker<tr> 1599*5e7646d2SAndroid Build Coastguard Worker <td><code>Rotated</code></td> 1600*5e7646d2SAndroid Build Coastguard Worker <td><code>false</code></td> 1601*5e7646d2SAndroid Build Coastguard Worker <td>Right-to-left, bottom-to-top</td> 1602*5e7646d2SAndroid Build Coastguard Worker</tr> 1603*5e7646d2SAndroid Build Coastguard Worker<tr> 1604*5e7646d2SAndroid Build Coastguard Worker <td><code>Rotated</code></td> 1605*5e7646d2SAndroid Build Coastguard Worker <td><code>true</code></td> 1606*5e7646d2SAndroid Build Coastguard Worker <td>Right-to-left, top-to-bottom</td> 1607*5e7646d2SAndroid Build Coastguard Worker</tr> 1608*5e7646d2SAndroid Build Coastguard Worker<tr> 1609*5e7646d2SAndroid Build Coastguard Worker <td><code>Flipped</code> *</td> 1610*5e7646d2SAndroid Build Coastguard Worker <td><code>false</code></td> 1611*5e7646d2SAndroid Build Coastguard Worker <td>Left-to-right, bottom-to-top</td> 1612*5e7646d2SAndroid Build Coastguard Worker</tr> 1613*5e7646d2SAndroid Build Coastguard Worker<tr> 1614*5e7646d2SAndroid Build Coastguard Worker <td><code>Flipped</code> *</td> 1615*5e7646d2SAndroid Build Coastguard Worker <td><code>true</code></td> 1616*5e7646d2SAndroid Build Coastguard Worker <td>Right-to-left, top-to-bottom</td> 1617*5e7646d2SAndroid Build Coastguard Worker</tr> 1618*5e7646d2SAndroid Build Coastguard Worker</tbody> 1619*5e7646d2SAndroid Build Coastguard Worker</table> 1620*5e7646d2SAndroid Build Coastguard Worker</div> 1621*5e7646d2SAndroid Build Coastguard Worker 1622*5e7646d2SAndroid Build Coastguard Worker<p><em>* - Not supported in macOS 10.5.x and earlier</em></p> 1623*5e7646d2SAndroid Build Coastguard Worker 1624*5e7646d2SAndroid Build Coastguard Worker<div class='figure'><table summary='Back side images'> 1625*5e7646d2SAndroid Build Coastguard Worker<caption>Figure 1: Back side images</caption> 1626*5e7646d2SAndroid Build Coastguard Worker<tr><td><img src='../images/raster.png' width='624' height='448' alt='Back side images'></td></tr> 1627*5e7646d2SAndroid Build Coastguard Worker</table></div> 1628*5e7646d2SAndroid Build Coastguard Worker 1629*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 1630*5e7646d2SAndroid Build Coastguard Worker 1631*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1632*5e7646d2SAndroid Build Coastguard Worker<em>*% Flip the page image for the back side of duplexed output</em> 1633*5e7646d2SAndroid Build Coastguard Worker*cupsBackSide: Flipped 1634*5e7646d2SAndroid Build Coastguard Worker 1635*5e7646d2SAndroid Build Coastguard Worker<em>*% Rotate the page image for the back side of duplexed output</em> 1636*5e7646d2SAndroid Build Coastguard Worker*cupsBackSide: Rotated 1637*5e7646d2SAndroid Build Coastguard Worker</pre> 1638*5e7646d2SAndroid Build Coastguard Worker 1639*5e7646d2SAndroid Build Coastguard Worker<p>Also see the related <a href='#APDuplexRequiresFlippedMargin'><tt>APDuplexRequiresFlippedMargin</tt></a> 1640*5e7646d2SAndroid Build Coastguard Workerkeyword.</p> 1641*5e7646d2SAndroid Build Coastguard Worker 1642*5e7646d2SAndroid Build Coastguard Worker 1643*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsCommands'>cupsCommands</a></h3> 1644*5e7646d2SAndroid Build Coastguard Worker 1645*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsCommands: "name name2 ... nameN"</p> 1646*5e7646d2SAndroid Build Coastguard Worker 1647*5e7646d2SAndroid Build Coastguard Worker<p>This string keyword specifies the commands that are supported by the 1648*5e7646d2SAndroid Build Coastguard WorkerCUPS command file filter for this device. The command names are separated 1649*5e7646d2SAndroid Build Coastguard Workerby whitespace.</p> 1650*5e7646d2SAndroid Build Coastguard Worker 1651*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 1652*5e7646d2SAndroid Build Coastguard Worker 1653*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1654*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify the list of commands we support</em> 1655*5e7646d2SAndroid Build Coastguard Worker*cupsCommands: "AutoConfigure Clean PrintSelfTestPage ReportLevels com.vendor.foo" 1656*5e7646d2SAndroid Build Coastguard Worker</pre> 1657*5e7646d2SAndroid Build Coastguard Worker 1658*5e7646d2SAndroid Build Coastguard Worker 1659*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsEvenDuplex'>cupsEvenDuplex</a></h3> 1660*5e7646d2SAndroid Build Coastguard Worker 1661*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsEvenDuplex: boolean</p> 1662*5e7646d2SAndroid Build Coastguard Worker 1663*5e7646d2SAndroid Build Coastguard Worker<p>This boolean keyword notifies the RIP filters that the 1664*5e7646d2SAndroid Build Coastguard Workerdestination printer requires an even number of pages when 2-sided 1665*5e7646d2SAndroid Build Coastguard Workerprinting is selected. The default value is <code>false</code>.</p> 1666*5e7646d2SAndroid Build Coastguard Worker 1667*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 1668*5e7646d2SAndroid Build Coastguard Worker 1669*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1670*5e7646d2SAndroid Build Coastguard Worker<em>*% Always send an even number of pages when duplexing</em> 1671*5e7646d2SAndroid Build Coastguard Worker*cupsEvenDuplex: true 1672*5e7646d2SAndroid Build Coastguard Worker</pre> 1673*5e7646d2SAndroid Build Coastguard Worker 1674*5e7646d2SAndroid Build Coastguard Worker 1675*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><a name='cupsFax'>cupsFax</a></h3> 1676*5e7646d2SAndroid Build Coastguard Worker 1677*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsFax: boolean</p> 1678*5e7646d2SAndroid Build Coastguard Worker 1679*5e7646d2SAndroid Build Coastguard Worker<p>This boolean keyword specifies whether the PPD defines a facsimile device. The default is <tt>false</tt>.</p> 1680*5e7646d2SAndroid Build Coastguard Worker 1681*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 1682*5e7646d2SAndroid Build Coastguard Worker 1683*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1684*5e7646d2SAndroid Build Coastguard Worker*cupsFax: true 1685*5e7646d2SAndroid Build Coastguard Worker</pre> 1686*5e7646d2SAndroid Build Coastguard Worker 1687*5e7646d2SAndroid Build Coastguard Worker 1688*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><a name='cupsFilter'>cupsFilter</a></h3> 1689*5e7646d2SAndroid Build Coastguard Worker 1690*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsFilter: "source/type cost program"</p> 1691*5e7646d2SAndroid Build Coastguard Worker 1692*5e7646d2SAndroid Build Coastguard Worker<p>This string keyword provides a conversion rule from the 1693*5e7646d2SAndroid Build Coastguard Workergiven source type to the printer's native format using the 1694*5e7646d2SAndroid Build Coastguard Workerfilter "program". If a printer supports the source type directly, 1695*5e7646d2SAndroid Build Coastguard Workerthe special filter program "-" may be specified.</p> 1696*5e7646d2SAndroid Build Coastguard Worker 1697*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 1698*5e7646d2SAndroid Build Coastguard Worker 1699*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1700*5e7646d2SAndroid Build Coastguard Worker<em>*% Standard raster printer driver filter</em> 1701*5e7646d2SAndroid Build Coastguard Worker*cupsFilter: "application/vnd.cups-raster 100 rastertofoo" 1702*5e7646d2SAndroid Build Coastguard Worker 1703*5e7646d2SAndroid Build Coastguard Worker<em>*% Plain text filter</em> 1704*5e7646d2SAndroid Build Coastguard Worker*cupsFilter: "text/plain 10 texttofoo" 1705*5e7646d2SAndroid Build Coastguard Worker 1706*5e7646d2SAndroid Build Coastguard Worker<em>*% Pass-through filter for PostScript printers</em> 1707*5e7646d2SAndroid Build Coastguard Worker*cupsFilter: "application/vnd.cups-postscript 0 -" 1708*5e7646d2SAndroid Build Coastguard Worker</pre> 1709*5e7646d2SAndroid Build Coastguard Worker 1710*5e7646d2SAndroid Build Coastguard Worker 1711*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.5</span><a name='cupsFilter2'>cupsFilter2</a></h3> 1712*5e7646d2SAndroid Build Coastguard Worker 1713*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsFilter2: "source/type destination/type cost program"</p> 1714*5e7646d2SAndroid Build Coastguard Worker 1715*5e7646d2SAndroid Build Coastguard Worker<p>This string keyword provides a conversion rule from the given source type to the printer's native format using the filter "program". If a printer supports the source type directly, the special filter program "-" may be specified. The destination type is automatically created as needed and is passed to the filters and backend as the FINAL_CONTENT_TYPE value.</p> 1716*5e7646d2SAndroid Build Coastguard Worker 1717*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b> 1718*5e7646d2SAndroid Build Coastguard Worker 1719*5e7646d2SAndroid Build Coastguard Worker<p>The presence of a single <code>cupsFilter2</code> keyword in the PPD file will hide any <code>cupsFilter</code> keywords from the CUPS scheduler. When using <code>cupsFilter2</code> to provide filters specific for CUPS 1.5 and later, provide a <code>cupsFilter2</code> line for every filter and a <code>cupsFilter</code> line for each filter that is compatible with older versions of CUPS.</p> 1720*5e7646d2SAndroid Build Coastguard Worker 1721*5e7646d2SAndroid Build Coastguard Worker</blockquote> 1722*5e7646d2SAndroid Build Coastguard Worker 1723*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 1724*5e7646d2SAndroid Build Coastguard Worker 1725*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1726*5e7646d2SAndroid Build Coastguard Worker<em>*% Standard raster printer driver filter</em> 1727*5e7646d2SAndroid Build Coastguard Worker*cupsFilter2: "application/vnd.cups-raster application/vnd.foo 100 rastertofoo" 1728*5e7646d2SAndroid Build Coastguard Worker 1729*5e7646d2SAndroid Build Coastguard Worker<em>*% Plain text filter</em> 1730*5e7646d2SAndroid Build Coastguard Worker*cupsFilter2: "text/plain application/vnd.foo 10 texttofoo" 1731*5e7646d2SAndroid Build Coastguard Worker 1732*5e7646d2SAndroid Build Coastguard Worker<em>*% Pass-through filter for PostScript printers</em> 1733*5e7646d2SAndroid Build Coastguard Worker*cupsFilter2: "application/vnd.cups-postscript application/postscript 0 -" 1734*5e7646d2SAndroid Build Coastguard Worker</pre> 1735*5e7646d2SAndroid Build Coastguard Worker 1736*5e7646d2SAndroid Build Coastguard Worker 1737*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 2.3</span><a name='cupsFinishingTemplate'>cupsFinishingTemplate</a></h3> 1738*5e7646d2SAndroid Build Coastguard Worker 1739*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsFinishingTemplate name/text: ""</p> 1740*5e7646d2SAndroid Build Coastguard Worker 1741*5e7646d2SAndroid Build Coastguard Worker<p>This option keyword specifies a finishing template (preset) that applies zero or more finishing processes to a job. Unlike <a href="#cupsIPPFinishings"><tt>cupsIPPFinishings</tt></a>, only one template can be selected by the user. PPD files also generally apply a constraint between this option and other finishing options like <tt>Booklet</tt>, <tt>FoldType</tt>, <tt>PunchMedia</tt>, and <tt>StapleWhen</tt>.</p> 1742*5e7646d2SAndroid Build Coastguard Worker 1743*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 1744*5e7646d2SAndroid Build Coastguard Worker 1745*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1746*5e7646d2SAndroid Build Coastguard Worker*cupsFinishingTemplate none/None: "" 1747*5e7646d2SAndroid Build Coastguard Worker*cupsFinishingTemplate fold/Letter Fold: "" 1748*5e7646d2SAndroid Build Coastguard Worker*cupsFinishingTemplate punch/2/3-Hole Punch: "" 1749*5e7646d2SAndroid Build Coastguard Worker*cupsFinishingTemplate staple/Corner Staple: "" 1750*5e7646d2SAndroid Build Coastguard Worker*cupsFinishingTemplate staple-dual/Double Staple: "" 1751*5e7646d2SAndroid Build Coastguard Worker*cupsFinishingTemplate staple-and-fold/Corner Staple and Letter Fold: "" 1752*5e7646d2SAndroid Build Coastguard Worker*cupsFinishingTemplate staple-and-punch/Corner Staple and 2/3-Hole Punch: "" 1753*5e7646d2SAndroid Build Coastguard Worker</pre> 1754*5e7646d2SAndroid Build Coastguard Worker 1755*5e7646d2SAndroid Build Coastguard Worker 1756*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>Deprecated</span><a name='cupsFlipDuplex'>cupsFlipDuplex</a></h3> 1757*5e7646d2SAndroid Build Coastguard Worker 1758*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsFlipDuplex: boolean</p> 1759*5e7646d2SAndroid Build Coastguard Worker 1760*5e7646d2SAndroid Build Coastguard Worker<p>Due to implementation differences between macOS and Ghostscript, 1761*5e7646d2SAndroid Build Coastguard Workerthe <tt>cupsFlipDuplex</tt> keyword is deprecated. Instead, use 1762*5e7646d2SAndroid Build Coastguard Workerthe <a href='#cupsBackSide'><tt>cupsBackSide</tt></a> keyword to specify 1763*5e7646d2SAndroid Build Coastguard Workerthe coordinate system (pixel layout) of the page data on the back side of 1764*5e7646d2SAndroid Build Coastguard Workerduplex pages.</p> 1765*5e7646d2SAndroid Build Coastguard Worker 1766*5e7646d2SAndroid Build Coastguard Worker<p>The value <code>true</code> maps to a <tt>cupsBackSide</tt> value 1767*5e7646d2SAndroid Build Coastguard Workerof <code>Rotated</code> on macOS and <code>Flipped</code> with 1768*5e7646d2SAndroid Build Coastguard WorkerGhostscript.</p> 1769*5e7646d2SAndroid Build Coastguard Worker 1770*5e7646d2SAndroid Build Coastguard Worker<p>The default value is <code>false</code>.</p> 1771*5e7646d2SAndroid Build Coastguard Worker 1772*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b> 1773*5e7646d2SAndroid Build Coastguard Worker 1774*5e7646d2SAndroid Build Coastguard Worker<p>macOS drivers that previously used 1775*5e7646d2SAndroid Build Coastguard Worker<tt>cupsFlipDuplex</tt> may wish to provide both the old and 1776*5e7646d2SAndroid Build Coastguard Workernew keywords for maximum compatibility, for example:</p> 1777*5e7646d2SAndroid Build Coastguard Worker 1778*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1779*5e7646d2SAndroid Build Coastguard Worker*cupsBackSide: Rotated 1780*5e7646d2SAndroid Build Coastguard Worker*cupsFlipDuplex: true 1781*5e7646d2SAndroid Build Coastguard Worker</pre> 1782*5e7646d2SAndroid Build Coastguard Worker 1783*5e7646d2SAndroid Build Coastguard Worker<p>Similarly, drivers written for other operating systems using 1784*5e7646d2SAndroid Build Coastguard WorkerGhostscript can use:</p> 1785*5e7646d2SAndroid Build Coastguard Worker 1786*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1787*5e7646d2SAndroid Build Coastguard Worker*cupsBackSide: Flipped 1788*5e7646d2SAndroid Build Coastguard Worker*cupsFlipDuplex: true 1789*5e7646d2SAndroid Build Coastguard Worker</pre></blockquote> 1790*5e7646d2SAndroid Build Coastguard Worker 1791*5e7646d2SAndroid Build Coastguard Worker 1792*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsIPPFinishings'>cupsIPPFinishings</a></h3> 1793*5e7646d2SAndroid Build Coastguard Worker 1794*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsIPPFinishings number/text: "*Option Choice ..."</p> 1795*5e7646d2SAndroid Build Coastguard Worker 1796*5e7646d2SAndroid Build Coastguard Worker<p>This keyword defines a mapping from IPP <code>finishings</code> 1797*5e7646d2SAndroid Build Coastguard Workervalues to PPD options and choices.</p> 1798*5e7646d2SAndroid Build Coastguard Worker 1799*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 1800*5e7646d2SAndroid Build Coastguard Worker 1801*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1802*5e7646d2SAndroid Build Coastguard Worker*cupsIPPFinishings 4/staple: "*StapleLocation SinglePortrait" 1803*5e7646d2SAndroid Build Coastguard Worker*cupsIPPFinishings 5/punch: "*PunchMedia Yes *PunchLocation LeftSide" 1804*5e7646d2SAndroid Build Coastguard Worker*cupsIPPFinishings 20/staple-top-left: "*StapleLocation SinglePortrait" 1805*5e7646d2SAndroid Build Coastguard Worker*cupsIPPFinishings 21/staple-bottom-left: "*StapleLocation SingleLandscape" 1806*5e7646d2SAndroid Build Coastguard Worker</pre> 1807*5e7646d2SAndroid Build Coastguard Worker 1808*5e7646d2SAndroid Build Coastguard Worker 1809*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsIPPReason'>cupsIPPReason</a></h3> 1810*5e7646d2SAndroid Build Coastguard Worker 1811*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsIPPReason reason/Reason Text: "optional URIs"</p> 1812*5e7646d2SAndroid Build Coastguard Worker 1813*5e7646d2SAndroid Build Coastguard Worker<p>This optional keyword maps custom 1814*5e7646d2SAndroid Build Coastguard Worker<code>printer-state-reasons</code> keywords that are generated by 1815*5e7646d2SAndroid Build Coastguard Workerthe driver to human readable text. The optional URIs string 1816*5e7646d2SAndroid Build Coastguard Workercontains zero or more URIs separated by a newline. Each URI can 1817*5e7646d2SAndroid Build Coastguard Workerbe a CUPS server absolute path to a help file under the 1818*5e7646d2SAndroid Build Coastguard Workerscheduler's <code>DocumentRoot</code> directory, a full HTTP URL 1819*5e7646d2SAndroid Build Coastguard Worker("http://www.domain.com/path/to/help/page.html"), or any other 1820*5e7646d2SAndroid Build Coastguard Workervalid URI which directs the user at additional information 1821*5e7646d2SAndroid Build Coastguard Workerconcerning the condition that is being reported.</p> 1822*5e7646d2SAndroid Build Coastguard Worker 1823*5e7646d2SAndroid Build Coastguard Worker<p>Since the reason text is limited to 80 characters by the PPD specification, longer text strings can be included by URI-encoding the text with the "text" scheme, for example "text:some%20text". Multiple <code>text</code> URIs are combined by the <tt>ppdLocalizeIPPReason</tt> into a single string that can be displayed to the user.</p> 1824*5e7646d2SAndroid Build Coastguard Worker 1825*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 1826*5e7646d2SAndroid Build Coastguard Worker 1827*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1828*5e7646d2SAndroid Build Coastguard Worker<em>*% Map com.vendor-error to text but no page</em> 1829*5e7646d2SAndroid Build Coastguard Worker*cupsIPPReason com.vendor-error/A serious error occurred: "" 1830*5e7646d2SAndroid Build Coastguard Worker 1831*5e7646d2SAndroid Build Coastguard Worker<em>*% Map com.vendor-error to more than 80 characters of text but no page</em> 1832*5e7646d2SAndroid Build Coastguard Worker*cupsIPPReason com.vendor-error/A serious error occurred: "text:Now%20is%20the%20time 1833*5e7646d2SAndroid Build Coastguard Workertext:for%20all%20good%20men%20to%20come%20to%20the%20aid%20of%20their%20country." 1834*5e7646d2SAndroid Build Coastguard Worker 1835*5e7646d2SAndroid Build Coastguard Worker<em>*% Map com.vendor-error to text and a local page</em> 1836*5e7646d2SAndroid Build Coastguard Worker*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html" 1837*5e7646d2SAndroid Build Coastguard Worker 1838*5e7646d2SAndroid Build Coastguard Worker<em>*% Map com.vendor-error to text and a remote page</em> 1839*5e7646d2SAndroid Build Coastguard Worker*cupsIPPReason com.vendor-error/A serious error occurred: "http://www.vendor.com/help" 1840*5e7646d2SAndroid Build Coastguard Worker 1841*5e7646d2SAndroid Build Coastguard Worker<em>*% Map com.vendor-error to text and a local, Apple help book, and remote page</em> 1842*5e7646d2SAndroid Build Coastguard Worker*APHelpBook: "file:///Library/Printers/vendor/Help.bundle" 1843*5e7646d2SAndroid Build Coastguard Worker*cupsIPPReason com.vendor-error/A serious error occurred: "/help/com.vendor/error.html 1844*5e7646d2SAndroid Build Coastguard Workerhelp:anchor='com.vendor-error'%20bookID=Vendor%20Help 1845*5e7646d2SAndroid Build Coastguard Workerhttp://www.vendor.com/help" 1846*5e7646d2SAndroid Build Coastguard Worker*End 1847*5e7646d2SAndroid Build Coastguard Worker</pre> 1848*5e7646d2SAndroid Build Coastguard Worker 1849*5e7646d2SAndroid Build Coastguard Worker 1850*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.5</span><a name='cupsIPPSupplies'>cupsIPPSupplies</a></h3> 1851*5e7646d2SAndroid Build Coastguard Worker 1852*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsIPPSupplies: boolean</p> 1853*5e7646d2SAndroid Build Coastguard Worker 1854*5e7646d2SAndroid Build Coastguard Worker<p>This keyword tells the IPP backend whether it should report the current marker-xxx supply attribute values. The default value is <code>True</code>. 1855*5e7646d2SAndroid Build Coastguard Worker 1856*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 1857*5e7646d2SAndroid Build Coastguard Worker 1858*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1859*5e7646d2SAndroid Build Coastguard Worker<em>*% Do not use IPP marker-xxx attributes to report supply levels</em> 1860*5e7646d2SAndroid Build Coastguard Worker*cupsIPPSupplies: False 1861*5e7646d2SAndroid Build Coastguard Worker</pre> 1862*5e7646d2SAndroid Build Coastguard Worker 1863*5e7646d2SAndroid Build Coastguard Worker 1864*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobAccountId'>cupsJobAccountId</a></h3> 1865*5e7646d2SAndroid Build Coastguard Worker 1866*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsJobAccountId: boolean</p> 1867*5e7646d2SAndroid Build Coastguard Worker 1868*5e7646d2SAndroid Build Coastguard Worker<p>This keyword defines whether the printer accepts the job-account-id IPP attribute.</p> 1869*5e7646d2SAndroid Build Coastguard Worker 1870*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 1871*5e7646d2SAndroid Build Coastguard Worker 1872*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1873*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify the printer accepts the job-account-id IPP attribute.</em> 1874*5e7646d2SAndroid Build Coastguard Worker*cupsJobAccountId: True 1875*5e7646d2SAndroid Build Coastguard Worker</pre> 1876*5e7646d2SAndroid Build Coastguard Worker 1877*5e7646d2SAndroid Build Coastguard Worker 1878*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobAccountingUserId'>cupsJobAccountingUserId</a></h3> 1879*5e7646d2SAndroid Build Coastguard Worker 1880*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsJobAccountingUserId: boolean</p> 1881*5e7646d2SAndroid Build Coastguard Worker 1882*5e7646d2SAndroid Build Coastguard Worker<p>This keyword defines whether the printer accepts the job-accounting-user-id IPP attribute.</p> 1883*5e7646d2SAndroid Build Coastguard Worker 1884*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 1885*5e7646d2SAndroid Build Coastguard Worker 1886*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1887*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify the printer accepts the job-accounting-user-id IPP attribute.</em> 1888*5e7646d2SAndroid Build Coastguard Worker*cupsJobAccountingUserId: True 1889*5e7646d2SAndroid Build Coastguard Worker</pre> 1890*5e7646d2SAndroid Build Coastguard Worker 1891*5e7646d2SAndroid Build Coastguard Worker 1892*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobPassword'>cupsJobPassword</a></h3> 1893*5e7646d2SAndroid Build Coastguard Worker 1894*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsJobPassword: "format"</p> 1895*5e7646d2SAndroid Build Coastguard Worker 1896*5e7646d2SAndroid Build Coastguard Worker<p>This keyword defines the format of the "job-password" IPP attribute, if supported by the printer. The following format characters are supported:</p> 1897*5e7646d2SAndroid Build Coastguard Worker 1898*5e7646d2SAndroid Build Coastguard Worker<ul> 1899*5e7646d2SAndroid Build Coastguard Worker <li><code>1</code>: US ASCII digits.</li> 1900*5e7646d2SAndroid Build Coastguard Worker <li><code>A</code>: US ASCII letters.</li> 1901*5e7646d2SAndroid Build Coastguard Worker <li><code>C</code>: US ASCII letters, numbers, and punctuation.</li> 1902*5e7646d2SAndroid Build Coastguard Worker <li><code>.</code>: Any US ASCII printable character (0x20 to 0x7e).</li> 1903*5e7646d2SAndroid Build Coastguard Worker <li><code>N</code>: Any Unicode digit character.</li> 1904*5e7646d2SAndroid Build Coastguard Worker <li><code>U</code>: Any Unicode letter character.</li> 1905*5e7646d2SAndroid Build Coastguard Worker <li><code>*</code>: Any Unicode (utf-8) character.</li> 1906*5e7646d2SAndroid Build Coastguard Worker</ul> 1907*5e7646d2SAndroid Build Coastguard Worker 1908*5e7646d2SAndroid Build Coastguard Worker<p>The format characters are repeated to indicate the length of the 1909*5e7646d2SAndroid Build Coastguard Workerpassword string. For example, "1111" indicated a 4-digit US ASCII PIN code.</p> 1910*5e7646d2SAndroid Build Coastguard Worker 1911*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 1912*5e7646d2SAndroid Build Coastguard Worker 1913*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1914*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify the printer supports 4-digit PIN codes.</em> 1915*5e7646d2SAndroid Build Coastguard Worker*cupsJobPassword: "1111" 1916*5e7646d2SAndroid Build Coastguard Worker</pre> 1917*5e7646d2SAndroid Build Coastguard Worker 1918*5e7646d2SAndroid Build Coastguard Worker 1919*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.2/macOS 10.5</span><a name='cupsLanguages'>cupsLanguages</a></h3> 1920*5e7646d2SAndroid Build Coastguard Worker 1921*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsLanguages: "locale list"</p> 1922*5e7646d2SAndroid Build Coastguard Worker 1923*5e7646d2SAndroid Build Coastguard Worker<p>This keyword describes which language localizations are 1924*5e7646d2SAndroid Build Coastguard Workerincluded in the PPD. The "locale list" string is a space-delimited 1925*5e7646d2SAndroid Build Coastguard Workerlist of locale names ("en", "en_US", "fr_CA", etc.)</p> 1926*5e7646d2SAndroid Build Coastguard Worker 1927*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 1928*5e7646d2SAndroid Build Coastguard Worker 1929*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1930*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify Canadian, UK, and US English, and Canadian and French French</em> 1931*5e7646d2SAndroid Build Coastguard Worker*cupsLanguages: "en_CA en_UK en_US fr_CA fr_FR" 1932*5e7646d2SAndroid Build Coastguard Worker</pre> 1933*5e7646d2SAndroid Build Coastguard Worker 1934*5e7646d2SAndroid Build Coastguard Worker 1935*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsMandatory'>cupsMandatory</a></h3> 1936*5e7646d2SAndroid Build Coastguard Worker 1937*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsMandatory: "attribute1 attribute2 ... attributeN"</p> 1938*5e7646d2SAndroid Build Coastguard Worker 1939*5e7646d2SAndroid Build Coastguard Worker<p>This keyword defines a list of IPP attributes that must be provided when submitting a print job creation request.</p> 1940*5e7646d2SAndroid Build Coastguard Worker 1941*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 1942*5e7646d2SAndroid Build Coastguard Worker 1943*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1944*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify that the user must supply a job-password</em> 1945*5e7646d2SAndroid Build Coastguard Worker*cupsMandatory: "job-password job-password-encryption" 1946*5e7646d2SAndroid Build Coastguard Worker</pre> 1947*5e7646d2SAndroid Build Coastguard Worker 1948*5e7646d2SAndroid Build Coastguard Worker 1949*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><a name='cupsManualCopies'>cupsManualCopies</a></h3> 1950*5e7646d2SAndroid Build Coastguard Worker 1951*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsManualCopies: boolean</p> 1952*5e7646d2SAndroid Build Coastguard Worker 1953*5e7646d2SAndroid Build Coastguard Worker<p>This boolean keyword notifies the RIP filters that the 1954*5e7646d2SAndroid Build Coastguard Workerdestination printer does not support copy generation in 1955*5e7646d2SAndroid Build Coastguard Workerhardware. The default value is <code>false</code>.</p> 1956*5e7646d2SAndroid Build Coastguard Worker 1957*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 1958*5e7646d2SAndroid Build Coastguard Worker 1959*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1960*5e7646d2SAndroid Build Coastguard Worker<em>*% Tell the RIP filters to generate the copies for us</em> 1961*5e7646d2SAndroid Build Coastguard Worker*cupsManualCopies: true 1962*5e7646d2SAndroid Build Coastguard Worker</pre> 1963*5e7646d2SAndroid Build Coastguard Worker 1964*5e7646d2SAndroid Build Coastguard Worker 1965*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMarkerName'>cupsMarkerName</a></h3> 1966*5e7646d2SAndroid Build Coastguard Worker 1967*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsMarkerName/Name Text: ""</p> 1968*5e7646d2SAndroid Build Coastguard Worker 1969*5e7646d2SAndroid Build Coastguard Worker<p>This optional keyword maps <code>marker-names</code> strings that are 1970*5e7646d2SAndroid Build Coastguard Workergenerated by the driver to human readable text.</p> 1971*5e7646d2SAndroid Build Coastguard Worker 1972*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 1973*5e7646d2SAndroid Build Coastguard Worker 1974*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1975*5e7646d2SAndroid Build Coastguard Worker<em>*% Map cyanToner to "Cyan Toner"</em> 1976*5e7646d2SAndroid Build Coastguard Worker*cupsMarkerName cyanToner/Cyan Toner: "" 1977*5e7646d2SAndroid Build Coastguard Worker</pre> 1978*5e7646d2SAndroid Build Coastguard Worker 1979*5e7646d2SAndroid Build Coastguard Worker 1980*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMarkerNotice'>cupsMarkerNotice</a></h3> 1981*5e7646d2SAndroid Build Coastguard Worker 1982*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsMarkerNotice: "disclaimer text"</p> 1983*5e7646d2SAndroid Build Coastguard Worker 1984*5e7646d2SAndroid Build Coastguard Worker<p>This optional keyword provides disclaimer text for the supply level 1985*5e7646d2SAndroid Build Coastguard Workerinformation provided by the driver, typically something like "supply levels 1986*5e7646d2SAndroid Build Coastguard Workerare approximate".</p> 1987*5e7646d2SAndroid Build Coastguard Worker 1988*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 1989*5e7646d2SAndroid Build Coastguard Worker 1990*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 1991*5e7646d2SAndroid Build Coastguard Worker*cupsMarkerNotice: "Supply levels are approximate." 1992*5e7646d2SAndroid Build Coastguard Worker</pre> 1993*5e7646d2SAndroid Build Coastguard Worker 1994*5e7646d2SAndroid Build Coastguard Worker 1995*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.6/macOS 10.8</span><a name='cupsMaxCopies'>cupsMaxCopies</a></h3> 1996*5e7646d2SAndroid Build Coastguard Worker 1997*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsMaxCopies: integer</p> 1998*5e7646d2SAndroid Build Coastguard Worker 1999*5e7646d2SAndroid Build Coastguard Worker<p>This integer keyword notifies the filters that the destination printer supports up to N copies in hardware. The default value is <code>9999</code>.</p> 2000*5e7646d2SAndroid Build Coastguard Worker 2001*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 2002*5e7646d2SAndroid Build Coastguard Worker 2003*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2004*5e7646d2SAndroid Build Coastguard Worker<em>*% Tell the RIP filters we can do up to 99 copies</em> 2005*5e7646d2SAndroid Build Coastguard Worker*cupsMaxCopies: 99 2006*5e7646d2SAndroid Build Coastguard Worker</pre> 2007*5e7646d2SAndroid Build Coastguard Worker 2008*5e7646d2SAndroid Build Coastguard Worker 2009*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><a name='cupsModelNumber'>cupsModelNumber</a></h3> 2010*5e7646d2SAndroid Build Coastguard Worker 2011*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsModelNumber: number</p> 2012*5e7646d2SAndroid Build Coastguard Worker 2013*5e7646d2SAndroid Build Coastguard Worker<p>This integer keyword specifies a printer-specific model 2014*5e7646d2SAndroid Build Coastguard Workernumber. This number can be used by a filter program to adjust 2015*5e7646d2SAndroid Build Coastguard Workerthe output for a specific model of printer.</p> 2016*5e7646d2SAndroid Build Coastguard Worker 2017*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 2018*5e7646d2SAndroid Build Coastguard Worker 2019*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2020*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify an integer for a driver-specific model number</em> 2021*5e7646d2SAndroid Build Coastguard Worker*cupsModelNumber: 1234 2022*5e7646d2SAndroid Build Coastguard Worker</pre> 2023*5e7646d2SAndroid Build Coastguard Worker 2024*5e7646d2SAndroid Build Coastguard Worker 2025*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsPJLCharset'>cupsPJLCharset</a></h3> 2026*5e7646d2SAndroid Build Coastguard Worker 2027*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsPJLCharset: "ISO character set name"</p> 2028*5e7646d2SAndroid Build Coastguard Worker 2029*5e7646d2SAndroid Build Coastguard Worker<p>This string keyword specifies the character set that is used 2030*5e7646d2SAndroid Build Coastguard Workerfor strings in PJL commands. If not specified, US-ASCII is 2031*5e7646d2SAndroid Build Coastguard Workerassumed.</p> 2032*5e7646d2SAndroid Build Coastguard Worker 2033*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 2034*5e7646d2SAndroid Build Coastguard Worker 2035*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2036*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify UTF-8 is used in PJL strings</em> 2037*5e7646d2SAndroid Build Coastguard Worker*cupsPJLCharset: "UTF-8" 2038*5e7646d2SAndroid Build Coastguard Worker</pre> 2039*5e7646d2SAndroid Build Coastguard Worker 2040*5e7646d2SAndroid Build Coastguard Worker 2041*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsPJLDisplay'>cupsPJLDisplay</a></h3> 2042*5e7646d2SAndroid Build Coastguard Worker 2043*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsPJLDisplay: "what"</p> 2044*5e7646d2SAndroid Build Coastguard Worker 2045*5e7646d2SAndroid Build Coastguard Worker<p>This optional keyword specifies which command is used to display the 2046*5e7646d2SAndroid Build Coastguard Workerjob ID, name, and user on the printer's control panel. "What" is either "none" 2047*5e7646d2SAndroid Build Coastguard Workerto disable this functionality, "job" to use "@PJL JOB DISPLAY", or "rdymsg" 2048*5e7646d2SAndroid Build Coastguard Workerto use "@PJL RDYMSG DISPLAY". The default is "job".</p> 2049*5e7646d2SAndroid Build Coastguard Worker 2050*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 2051*5e7646d2SAndroid Build Coastguard Worker 2052*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2053*5e7646d2SAndroid Build Coastguard Worker<em>*% Display job information using @PJL SET RDYMSG DISPLAY="foo"</em> 2054*5e7646d2SAndroid Build Coastguard Worker*cupsPJLDisplay: "rdymsg" 2055*5e7646d2SAndroid Build Coastguard Worker 2056*5e7646d2SAndroid Build Coastguard Worker<em>*% Display job information display</em> 2057*5e7646d2SAndroid Build Coastguard Worker*cupsPJLDisplay: "none" 2058*5e7646d2SAndroid Build Coastguard Worker</pre> 2059*5e7646d2SAndroid Build Coastguard Worker 2060*5e7646d2SAndroid Build Coastguard Worker 2061*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.2/macOS 10.5</span><a name='cupsPortMonitor'>cupsPortMonitor</a></h3> 2062*5e7646d2SAndroid Build Coastguard Worker 2063*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsPortMonitor urischeme/Descriptive Text: "port monitor"</p> 2064*5e7646d2SAndroid Build Coastguard Worker 2065*5e7646d2SAndroid Build Coastguard Worker<p>This string keyword specifies printer-specific "port 2066*5e7646d2SAndroid Build Coastguard Workermonitor" filters that may be used with the printer. The CUPS 2067*5e7646d2SAndroid Build Coastguard Workerscheduler also looks for the <tt>Protocols</tt> keyword to see 2068*5e7646d2SAndroid Build Coastguard Workerif the <tt>BCP</tt> or <tt>TBCP</tt> protocols are supported. If 2069*5e7646d2SAndroid Build Coastguard Workerso, the corresponding port monitor ("bcp" and "tbcp", 2070*5e7646d2SAndroid Build Coastguard Workerrespectively) is listed in the printer's 2071*5e7646d2SAndroid Build Coastguard Worker<tt>port-monitor-supported</tt> keyword.</p> 2072*5e7646d2SAndroid Build Coastguard Worker 2073*5e7646d2SAndroid Build Coastguard Worker<p>The "urischeme" portion of the keyword specifies the URI scheme 2074*5e7646d2SAndroid Build Coastguard Workerthat this port monitor should be used for. Typically this is used to 2075*5e7646d2SAndroid Build Coastguard Workerpre-select a particular port monitor for each type of connection that 2076*5e7646d2SAndroid Build Coastguard Workeris supported by the printer. The "port monitor" string can be "none" 2077*5e7646d2SAndroid Build Coastguard Workerto disable the port monitor for the given URI scheme.</p> 2078*5e7646d2SAndroid Build Coastguard Worker 2079*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 2080*5e7646d2SAndroid Build Coastguard Worker 2081*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2082*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify a PostScript printer that supports the TBCP protocol</em> 2083*5e7646d2SAndroid Build Coastguard Worker*Protocols: TBCP PJL 2084*5e7646d2SAndroid Build Coastguard Worker 2085*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify that TBCP should be used for socket connections but not USB</em> 2086*5e7646d2SAndroid Build Coastguard Worker*cupsPortMonitor socket/AppSocket Printing: "tbcp" 2087*5e7646d2SAndroid Build Coastguard Worker*cupsPortMonitor usb/USB Printing: "none" 2088*5e7646d2SAndroid Build Coastguard Worker 2089*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify a printer-specific port monitor for an Epson USB printer</em> 2090*5e7646d2SAndroid Build Coastguard Worker*cupsPortMonitor usb/USB Status Monitor: "epson-usb" 2091*5e7646d2SAndroid Build Coastguard Worker</pre> 2092*5e7646d2SAndroid Build Coastguard Worker 2093*5e7646d2SAndroid Build Coastguard Worker 2094*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsPreFilter'>cupsPreFilter</a></h3> 2095*5e7646d2SAndroid Build Coastguard Worker 2096*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsPreFilter: "source/type cost program"</p> 2097*5e7646d2SAndroid Build Coastguard Worker 2098*5e7646d2SAndroid Build Coastguard Worker<p>This string keyword provides a pre-filter rule. The pre-filter 2099*5e7646d2SAndroid Build Coastguard Workerprogram will be inserted in the conversion chain immediately 2100*5e7646d2SAndroid Build Coastguard Workerbefore the filter that accepts the given MIME type.</p> 2101*5e7646d2SAndroid Build Coastguard Worker 2102*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 2103*5e7646d2SAndroid Build Coastguard Worker 2104*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2105*5e7646d2SAndroid Build Coastguard Worker<em>*% PDF pre-filter</em> 2106*5e7646d2SAndroid Build Coastguard Worker*cupsPreFilter: "application/pdf 100 mypdfprefilter" 2107*5e7646d2SAndroid Build Coastguard Worker 2108*5e7646d2SAndroid Build Coastguard Worker<em>*% PNG pre-filter</em> 2109*5e7646d2SAndroid Build Coastguard Worker*cupsPreFilter: "image/png 0 mypngprefilter" 2110*5e7646d2SAndroid Build Coastguard Worker</pre> 2111*5e7646d2SAndroid Build Coastguard Worker 2112*5e7646d2SAndroid Build Coastguard Worker 2113*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.5</span><a name='cupsPrintQuality'>cupsPrintQuality</a></h3> 2114*5e7646d2SAndroid Build Coastguard Worker 2115*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsPrintQuality keyword/text: "code"</p> 2116*5e7646d2SAndroid Build Coastguard Worker 2117*5e7646d2SAndroid Build Coastguard Worker<p>This UI keyword defines standard print qualities that directly map from the IPP "print-quality" job template keyword. Standard keyword values are "Draft", "Normal", and "High" which are mapped from the IPP "print-quality" values 3, 4, and 5 respectively. Each <code>cupsPrintQuality</code> option typically sets output mode and resolution parameters in the page device dictionary, eliminating the need for separate (and sometimes confusing) output mode and resolution options.</p> 2118*5e7646d2SAndroid Build Coastguard Worker 2119*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b> 2120*5e7646d2SAndroid Build Coastguard Worker 2121*5e7646d2SAndroid Build Coastguard Worker<p>Unlike all of the other keywords defined in this document, <code>cupsPrintQuality</code> is a UI keyword that MUST be enclosed inside the PPD <code>OpenUI</code> and <code>CloseUI</code> keywords.</p> 2122*5e7646d2SAndroid Build Coastguard Worker 2123*5e7646d2SAndroid Build Coastguard Worker</blockquote> 2124*5e7646d2SAndroid Build Coastguard Worker 2125*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 2126*5e7646d2SAndroid Build Coastguard Worker 2127*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2128*5e7646d2SAndroid Build Coastguard Worker*OpenUI *cupsPrintQuality/Print Quality: PickOne 2129*5e7646d2SAndroid Build Coastguard Worker*OrderDependency: 10 AnySetup *cupsPrintQuality 2130*5e7646d2SAndroid Build Coastguard Worker*DefaultcupsPrintQuality: Normal 2131*5e7646d2SAndroid Build Coastguard Worker*cupsPrintQuality Draft/Draft: "code" 2132*5e7646d2SAndroid Build Coastguard Worker*cupsPrintQuality Normal/Normal: "code" 2133*5e7646d2SAndroid Build Coastguard Worker*cupsPrintQuality High/Photo: "code" 2134*5e7646d2SAndroid Build Coastguard Worker*CloseUI: *cupsPrintQuality 2135*5e7646d2SAndroid Build Coastguard Worker</pre> 2136*5e7646d2SAndroid Build Coastguard Worker 2137*5e7646d2SAndroid Build Coastguard Worker 2138*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.5</span><a name='cupsSingleFile'>cupsSingleFile</a></h3> 2139*5e7646d2SAndroid Build Coastguard Worker 2140*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsSingleFile: Boolean</p> 2141*5e7646d2SAndroid Build Coastguard Worker 2142*5e7646d2SAndroid Build Coastguard Worker<p>This boolean keyword tells the scheduler whether to print multiple files in a job together or singly. The default is "False" which uses a single instance of the backend for all files in the print job. Setting this keyword to "True" will result in separate instances of the backend for each file in the print job.</p> 2143*5e7646d2SAndroid Build Coastguard Worker 2144*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 2145*5e7646d2SAndroid Build Coastguard Worker 2146*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2147*5e7646d2SAndroid Build Coastguard Worker<em>*% Send all print data to a single backend</em> 2148*5e7646d2SAndroid Build Coastguard Worker*cupsSingleFile: False 2149*5e7646d2SAndroid Build Coastguard Worker 2150*5e7646d2SAndroid Build Coastguard Worker<em>*% Send each file using a separate backend</em> 2151*5e7646d2SAndroid Build Coastguard Worker*cupsSingleFile: True 2152*5e7646d2SAndroid Build Coastguard Worker</pre> 2153*5e7646d2SAndroid Build Coastguard Worker 2154*5e7646d2SAndroid Build Coastguard Worker 2155*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsSNMPSupplies'>cupsSNMPSupplies</a></h3> 2156*5e7646d2SAndroid Build Coastguard Worker 2157*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsSNMPSupplies: boolean</p> 2158*5e7646d2SAndroid Build Coastguard Worker 2159*5e7646d2SAndroid Build Coastguard Worker<p>This keyword tells the standard network backends whether they should query 2160*5e7646d2SAndroid Build Coastguard Workerthe standard SNMP Printer MIB OIDs for supply levels. The default value is 2161*5e7646d2SAndroid Build Coastguard Worker<code>True</code>. 2162*5e7646d2SAndroid Build Coastguard Worker 2163*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 2164*5e7646d2SAndroid Build Coastguard Worker 2165*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2166*5e7646d2SAndroid Build Coastguard Worker<em>*% Do not use SNMP queries to report supply levels</em> 2167*5e7646d2SAndroid Build Coastguard Worker*cupsSNMPSupplies: False 2168*5e7646d2SAndroid Build Coastguard Worker</pre> 2169*5e7646d2SAndroid Build Coastguard Worker 2170*5e7646d2SAndroid Build Coastguard Worker 2171*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><a name='cupsVersion'>cupsVersion</a></h3> 2172*5e7646d2SAndroid Build Coastguard Worker 2173*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*cupsVersion: major.minor</p> 2174*5e7646d2SAndroid Build Coastguard Worker 2175*5e7646d2SAndroid Build Coastguard Worker<p>This required keyword describes which version of the CUPS 2176*5e7646d2SAndroid Build Coastguard WorkerPPD file extensions was used. Currently it must be the string 2177*5e7646d2SAndroid Build Coastguard Worker"1.0", "1.1", "1.2", "1.3", "1.4", "1.5", or "1.6".</p> 2178*5e7646d2SAndroid Build Coastguard Worker 2179*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 2180*5e7646d2SAndroid Build Coastguard Worker 2181*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2182*5e7646d2SAndroid Build Coastguard Worker<em>*% Specify a CUPS 1.2 driver</em> 2183*5e7646d2SAndroid Build Coastguard Worker*cupsVersion: "1.2" 2184*5e7646d2SAndroid Build Coastguard Worker</pre> 2185*5e7646d2SAndroid Build Coastguard Worker 2186*5e7646d2SAndroid Build Coastguard Worker 2187*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class="info">CUPS 1.6/macOS 10.8</span><a name="JCLToPDFInterpreter">JCLToPDFInterpreter</a></h3> 2188*5e7646d2SAndroid Build Coastguard Worker 2189*5e7646d2SAndroid Build Coastguard Worker<p class="summary">*JCLToPDFInterpreter: "JCL"</p> 2190*5e7646d2SAndroid Build Coastguard Worker 2191*5e7646d2SAndroid Build Coastguard Worker<p>This keyword provides the JCL command to insert a PDF job file into a printer-ready data stream. The JCL command is added after the <tt>JCLBegin</tt> value and any commands for JCL options in the PPD file.</p> 2192*5e7646d2SAndroid Build Coastguard Worker 2193*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 2194*5e7646d2SAndroid Build Coastguard Worker 2195*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2196*5e7646d2SAndroid Build Coastguard Worker<em>*% PJL command to start the PDF interpreter</em> 2197*5e7646d2SAndroid Build Coastguard Worker*JCLToPDFInterpreter: "@PJL ENTER LANGUAGE = PDF<0A>" 2198*5e7646d2SAndroid Build Coastguard Worker</pre> 2199*5e7646d2SAndroid Build Coastguard Worker 2200*5e7646d2SAndroid Build Coastguard Worker 2201*5e7646d2SAndroid Build Coastguard Worker<h2 class='title'><a name='MACOSX'>macOS Attributes</a></h2> 2202*5e7646d2SAndroid Build Coastguard Worker 2203*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>Deprecated</span><a name='APDialogExtension'>APDialogExtension</a></h3> 2204*5e7646d2SAndroid Build Coastguard Worker 2205*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*APDialogExtension: "/Library/Printers/vendor/filename.plugin"</p> 2206*5e7646d2SAndroid Build Coastguard Worker 2207*5e7646d2SAndroid Build Coastguard Worker<p>This keyword defines additional option panes that are displayed in the 2208*5e7646d2SAndroid Build Coastguard Workerprint dialog. Each keyword adds one or more option panes. See the "OutputBinsPDE" 2209*5e7646d2SAndroid Build Coastguard Workerexample and <a href='http://developer.apple.com/qa/qa2004/qa1352.html'>Apple 2210*5e7646d2SAndroid Build Coastguard WorkerTechnical Q&A QA1352</a> for information on writing your own print dialog 2211*5e7646d2SAndroid Build Coastguard Workerplug-ins.</p> 2212*5e7646d2SAndroid Build Coastguard Worker 2213*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b> 2214*5e7646d2SAndroid Build Coastguard Worker 2215*5e7646d2SAndroid Build Coastguard Worker<p>Since 2010, AirPrint has enabled the printing of full quality photos and 2216*5e7646d2SAndroid Build Coastguard Workerdocuments from the Mac without requiring driver software. Starting with macOS 2217*5e7646d2SAndroid Build Coastguard Worker10.12, system level security features prevent print dialog plug-ins from being 2218*5e7646d2SAndroid Build Coastguard Workerloaded into applications that have enabled the library validation security 2219*5e7646d2SAndroid Build Coastguard Workerfeature. As of macOS 10.14 the <code>APDialogExtension</code> attribute used to 2220*5e7646d2SAndroid Build Coastguard Workercreate macOS print drivers is deprecated. All new printer models should support 2221*5e7646d2SAndroid Build Coastguard WorkerAirPrint moving forward.</p> 2222*5e7646d2SAndroid Build Coastguard Worker 2223*5e7646d2SAndroid Build Coastguard Worker</blockquote> 2224*5e7646d2SAndroid Build Coastguard Worker 2225*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 2226*5e7646d2SAndroid Build Coastguard Worker 2227*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2228*5e7646d2SAndroid Build Coastguard Worker*% Add two panes for finishing and driver options 2229*5e7646d2SAndroid Build Coastguard Worker*APDialogExtension: "/Library/Printers/vendor/finishing.plugin" 2230*5e7646d2SAndroid Build Coastguard Worker*APDialogExtension: "/Library/Printers/vendor/options.plugin" 2231*5e7646d2SAndroid Build Coastguard Worker</pre> 2232*5e7646d2SAndroid Build Coastguard Worker 2233*5e7646d2SAndroid Build Coastguard Worker 2234*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>macOS 10.4</span><a name='APDuplexRequiresFlippedMargin'>APDuplexRequiresFlippedMargin</a></h3> 2235*5e7646d2SAndroid Build Coastguard Worker 2236*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*APDuplexRequiresFlippedMargin: boolean</p> 2237*5e7646d2SAndroid Build Coastguard Worker 2238*5e7646d2SAndroid Build Coastguard Worker<p>This boolean keyword notifies the RIP filters that the 2239*5e7646d2SAndroid Build Coastguard Workerdestination printer requires the top and bottom margins of the 2240*5e7646d2SAndroid Build Coastguard Worker<tt>ImageableArea</tt> to be swapped for the back page. The 2241*5e7646d2SAndroid Build Coastguard Workerdefault is <tt>true</tt> when <tt>cupsBackSide</tt> is <tt>Flipped</tt> 2242*5e7646d2SAndroid Build Coastguard Workerand <tt>false</tt> otherwise. <a href='#TABLE_2'>Table 2</a> shows how 2243*5e7646d2SAndroid Build Coastguard Worker<tt>APDuplexRequiresFlippedMargin</tt> interacts with <tt>cupsBackSide</tt> 2244*5e7646d2SAndroid Build Coastguard Workerand the <tt>Tumble</tt> page attribute.</p> 2245*5e7646d2SAndroid Build Coastguard Worker 2246*5e7646d2SAndroid Build Coastguard Worker<div class='table'> 2247*5e7646d2SAndroid Build Coastguard Worker<table width='80%' summary='Margin Flipping Modes'> 2248*5e7646d2SAndroid Build Coastguard Worker<caption>Table 2: <a name='TABLE_2'>Margin Flipping Modes</a></caption> 2249*5e7646d2SAndroid Build Coastguard Worker<thead> 2250*5e7646d2SAndroid Build Coastguard Worker<tr> 2251*5e7646d2SAndroid Build Coastguard Worker <th>APDuplexRequiresFlippedMargin</th> 2252*5e7646d2SAndroid Build Coastguard Worker <th>cupsBackSide</th> 2253*5e7646d2SAndroid Build Coastguard Worker <th>Tumble Value</th> 2254*5e7646d2SAndroid Build Coastguard Worker <th>Margins</th> 2255*5e7646d2SAndroid Build Coastguard Worker</tr> 2256*5e7646d2SAndroid Build Coastguard Worker</thead> 2257*5e7646d2SAndroid Build Coastguard Worker<tbody> 2258*5e7646d2SAndroid Build Coastguard Worker<tr> 2259*5e7646d2SAndroid Build Coastguard Worker <td>false</td> 2260*5e7646d2SAndroid Build Coastguard Worker <td>any</td> 2261*5e7646d2SAndroid Build Coastguard Worker <td>any</td> 2262*5e7646d2SAndroid Build Coastguard Worker <td>Normal</td> 2263*5e7646d2SAndroid Build Coastguard Worker</tr> 2264*5e7646d2SAndroid Build Coastguard Worker<tr> 2265*5e7646d2SAndroid Build Coastguard Worker <td>any</td> 2266*5e7646d2SAndroid Build Coastguard Worker <td>Normal</td> 2267*5e7646d2SAndroid Build Coastguard Worker <td>any</td> 2268*5e7646d2SAndroid Build Coastguard Worker <td>Normal</td> 2269*5e7646d2SAndroid Build Coastguard Worker</tr> 2270*5e7646d2SAndroid Build Coastguard Worker<tr> 2271*5e7646d2SAndroid Build Coastguard Worker <td>true</td> 2272*5e7646d2SAndroid Build Coastguard Worker <td>ManualDuplex</td> 2273*5e7646d2SAndroid Build Coastguard Worker <td>false</td> 2274*5e7646d2SAndroid Build Coastguard Worker <td>Normal</td> 2275*5e7646d2SAndroid Build Coastguard Worker</tr> 2276*5e7646d2SAndroid Build Coastguard Worker<tr> 2277*5e7646d2SAndroid Build Coastguard Worker <td>true</td> 2278*5e7646d2SAndroid Build Coastguard Worker <td>ManualDuplex</td> 2279*5e7646d2SAndroid Build Coastguard Worker <td>true</td> 2280*5e7646d2SAndroid Build Coastguard Worker <td>Flipped</td> 2281*5e7646d2SAndroid Build Coastguard Worker</tr> 2282*5e7646d2SAndroid Build Coastguard Worker<tr> 2283*5e7646d2SAndroid Build Coastguard Worker <td>true</td> 2284*5e7646d2SAndroid Build Coastguard Worker <td>Rotated</td> 2285*5e7646d2SAndroid Build Coastguard Worker <td>false</td> 2286*5e7646d2SAndroid Build Coastguard Worker <td>Flipped</td> 2287*5e7646d2SAndroid Build Coastguard Worker</tr> 2288*5e7646d2SAndroid Build Coastguard Worker<tr> 2289*5e7646d2SAndroid Build Coastguard Worker <td>true</td> 2290*5e7646d2SAndroid Build Coastguard Worker <td>Rotated</td> 2291*5e7646d2SAndroid Build Coastguard Worker <td>true</td> 2292*5e7646d2SAndroid Build Coastguard Worker <td>Normal</td> 2293*5e7646d2SAndroid Build Coastguard Worker</tr> 2294*5e7646d2SAndroid Build Coastguard Worker<tr> 2295*5e7646d2SAndroid Build Coastguard Worker <td>true or unspecified</td> 2296*5e7646d2SAndroid Build Coastguard Worker <td>Flipped</td> 2297*5e7646d2SAndroid Build Coastguard Worker <td>any</td> 2298*5e7646d2SAndroid Build Coastguard Worker <td>Flipped</td> 2299*5e7646d2SAndroid Build Coastguard Worker</tr> 2300*5e7646d2SAndroid Build Coastguard Worker</tbody> 2301*5e7646d2SAndroid Build Coastguard Worker</table></div> 2302*5e7646d2SAndroid Build Coastguard Worker 2303*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 2304*5e7646d2SAndroid Build Coastguard Worker 2305*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2306*5e7646d2SAndroid Build Coastguard Worker<em>*% Rotate the back side images</em> 2307*5e7646d2SAndroid Build Coastguard Worker*cupsBackSide: Rotated 2308*5e7646d2SAndroid Build Coastguard Worker 2309*5e7646d2SAndroid Build Coastguard Worker<em>*% Don't swap the top and bottom margins for the back side</em> 2310*5e7646d2SAndroid Build Coastguard Worker*APDuplexRequiresFlippedMargin: false 2311*5e7646d2SAndroid Build Coastguard Worker</pre> 2312*5e7646d2SAndroid Build Coastguard Worker 2313*5e7646d2SAndroid Build Coastguard Worker<p>Also see the related <a href='#cupsBackSide'><tt>cupsBackSide</tt></a> 2314*5e7646d2SAndroid Build Coastguard Workerkeyword.</p> 2315*5e7646d2SAndroid Build Coastguard Worker 2316*5e7646d2SAndroid Build Coastguard Worker 2317*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><a name='APHelpBook'>APHelpBook</a></h3> 2318*5e7646d2SAndroid Build Coastguard Worker 2319*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*APHelpBook: "bundle URL"</p> 2320*5e7646d2SAndroid Build Coastguard Worker 2321*5e7646d2SAndroid Build Coastguard Worker<p>This string keyword specifies the Apple help book bundle to use when 2322*5e7646d2SAndroid Build Coastguard Workerlooking up IPP reason codes for this printer driver. The 2323*5e7646d2SAndroid Build Coastguard Worker<a href='#cupsIPPReason'><tt>cupsIPPReason</tt></a> keyword maps 2324*5e7646d2SAndroid Build Coastguard Worker"help" URIs to this file.</p> 2325*5e7646d2SAndroid Build Coastguard Worker 2326*5e7646d2SAndroid Build Coastguard Worker<p>Example:</p> 2327*5e7646d2SAndroid Build Coastguard Worker 2328*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2329*5e7646d2SAndroid Build Coastguard Worker*APHelpBook: "file:///Library/Printers/vendor/Help.bundle" 2330*5e7646d2SAndroid Build Coastguard Worker</pre> 2331*5e7646d2SAndroid Build Coastguard Worker 2332*5e7646d2SAndroid Build Coastguard Worker 2333*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>macOS 10.6</span><a name='APICADriver'>APICADriver</a></h3> 2334*5e7646d2SAndroid Build Coastguard Worker 2335*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*APICADriver: boolean</p> 2336*5e7646d2SAndroid Build Coastguard Worker 2337*5e7646d2SAndroid Build Coastguard Worker<p>This keyword specifies whether the device has a matching Image Capture 2338*5e7646d2SAndroid Build Coastguard WorkerArchitecture (ICA) driver for scanning. The default is <tt>False</tt>.</p> 2339*5e7646d2SAndroid Build Coastguard Worker 2340*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 2341*5e7646d2SAndroid Build Coastguard Worker 2342*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2343*5e7646d2SAndroid Build Coastguard Worker*APICADriver: True 2344*5e7646d2SAndroid Build Coastguard Worker*APScanAppBundleID: "com.apple.ImageCaptureApp" 2345*5e7646d2SAndroid Build Coastguard Worker</pre> 2346*5e7646d2SAndroid Build Coastguard Worker 2347*5e7646d2SAndroid Build Coastguard Worker 2348*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>macOS 10.3</span><a name='APPrinterIconPath'>APPrinterIconPath</a></h3> 2349*5e7646d2SAndroid Build Coastguard Worker 2350*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*APPrinterIconPath: "/Library/Printers/vendor/filename.icns"</p> 2351*5e7646d2SAndroid Build Coastguard Worker 2352*5e7646d2SAndroid Build Coastguard Worker<p>This keyword defines the location of a printer icon file to use when 2353*5e7646d2SAndroid Build Coastguard Workerdisplaying the printer. The file must be in the Apple icon format.</p> 2354*5e7646d2SAndroid Build Coastguard Worker 2355*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 2356*5e7646d2SAndroid Build Coastguard Worker 2357*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2358*5e7646d2SAndroid Build Coastguard Worker*% Apple icon file 2359*5e7646d2SAndroid Build Coastguard Worker*APPrinterIconPath: "/Library/Printers/vendor/Icons/filename.icns" 2360*5e7646d2SAndroid Build Coastguard Worker</pre> 2361*5e7646d2SAndroid Build Coastguard Worker 2362*5e7646d2SAndroid Build Coastguard Worker 2363*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>macOS 10.4</span><a name='APPrinterLowInkTool'>APPrinterLowInkTool</a></h3> 2364*5e7646d2SAndroid Build Coastguard Worker 2365*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*APPrinterLowInkTool: "/Library/Printers/vendor/program"</p> 2366*5e7646d2SAndroid Build Coastguard Worker 2367*5e7646d2SAndroid Build Coastguard Worker<p>This keyword defines an program that checks the ink/toner/marker levels 2368*5e7646d2SAndroid Build Coastguard Workeron a printer, returning an XML document with those levels. See the "InkTool" 2369*5e7646d2SAndroid Build Coastguard Workerexample and 2370*5e7646d2SAndroid Build Coastguard Worker<a href='http://developer.apple.com/technotes/tn2005/tn2144.html'>Apple 2371*5e7646d2SAndroid Build Coastguard WorkerTechnical Note TN2144</a> for more information.</p> 2372*5e7646d2SAndroid Build Coastguard Worker 2373*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 2374*5e7646d2SAndroid Build Coastguard Worker 2375*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2376*5e7646d2SAndroid Build Coastguard Worker*% Use a vendor monitoring program 2377*5e7646d2SAndroid Build Coastguard Worker*APPrinterLowInkTool: "/Library/Printers/vendor/Tools/lowinktool" 2378*5e7646d2SAndroid Build Coastguard Worker</pre> 2379*5e7646d2SAndroid Build Coastguard Worker 2380*5e7646d2SAndroid Build Coastguard Worker 2381*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>macOS 10.5</span><a name='APPrinterPreset'>APPrinterPreset</a></h3> 2382*5e7646d2SAndroid Build Coastguard Worker 2383*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*APPrinterPreset name/text: "*Option Choice ..."</p> 2384*5e7646d2SAndroid Build Coastguard Worker 2385*5e7646d2SAndroid Build Coastguard Worker<p>This keyword defines presets for multiple options that show up 2386*5e7646d2SAndroid Build Coastguard Workerin the print dialog of applications (such as iPhoto) that set the job 2387*5e7646d2SAndroid Build Coastguard Workerstyle hint to <tt>NSPrintPhotoJobStyleHint</tt>. Each preset maps to one or 2388*5e7646d2SAndroid Build Coastguard Workermore pairs of PPD options and choices as well as providing key/value data for 2389*5e7646d2SAndroid Build Coastguard Workerthe application. The following standard preset names are currently defined:</p> 2390*5e7646d2SAndroid Build Coastguard Worker 2391*5e7646d2SAndroid Build Coastguard Worker<ul> 2392*5e7646d2SAndroid Build Coastguard Worker 2393*5e7646d2SAndroid Build Coastguard Worker <li><code>General_with_Paper_Auto-Detect</code>; Normal quality general printing with auto-detected media.</li> 2394*5e7646d2SAndroid Build Coastguard Worker 2395*5e7646d2SAndroid Build Coastguard Worker <li><code>General_with_Paper_Auto-Detect_-_Draft</code>; Draft quality general printing with auto-detected media.</li> 2396*5e7646d2SAndroid Build Coastguard Worker 2397*5e7646d2SAndroid Build Coastguard Worker <li><code>General_on_Plain_Paper</code>; Normal quality general printing on plain paper.</li> 2398*5e7646d2SAndroid Build Coastguard Worker 2399*5e7646d2SAndroid Build Coastguard Worker <li><code>General_on_Plain_Paper_-_Draft</code>; Draft quality general printing on plain paper.</li> 2400*5e7646d2SAndroid Build Coastguard Worker 2401*5e7646d2SAndroid Build Coastguard Worker <li><code>Photo_with_Paper_Auto-Detect</code>; Normal quality photo printing with auto-detected media.</li> 2402*5e7646d2SAndroid Build Coastguard Worker 2403*5e7646d2SAndroid Build Coastguard Worker <li><code>Photo_with_Paper_Auto-Detect_-_Fine</code>; High quality photo printing with auto-detected media.</li> 2404*5e7646d2SAndroid Build Coastguard Worker 2405*5e7646d2SAndroid Build Coastguard Worker <li><code>Photo_on_Plain_Paper</code>; Normal quality photo printing on plain paper.</li> 2406*5e7646d2SAndroid Build Coastguard Worker 2407*5e7646d2SAndroid Build Coastguard Worker <li><code>Photo_on_Plain_Paper_-_Fine</code>; High quality photo printing on plain paper.</li> 2408*5e7646d2SAndroid Build Coastguard Worker 2409*5e7646d2SAndroid Build Coastguard Worker <li><code>Photo_on_Photo_Paper</code>; Normal quality photo printing on glossy photo paper.</li> 2410*5e7646d2SAndroid Build Coastguard Worker 2411*5e7646d2SAndroid Build Coastguard Worker <li><code>Photo_on_Photo_Paper_-_Fine</code>; High quality photo printing on glossy photo paper.</li> 2412*5e7646d2SAndroid Build Coastguard Worker 2413*5e7646d2SAndroid Build Coastguard Worker <li><code>Photo_on_Matte_Paper</code>; Normal quality photo printing on matte paper.</li> 2414*5e7646d2SAndroid Build Coastguard Worker 2415*5e7646d2SAndroid Build Coastguard Worker <li><code>Photo_on_Matte_Paper_-_Fine</code>; High quality photo printing on matte paper.</li> 2416*5e7646d2SAndroid Build Coastguard Worker 2417*5e7646d2SAndroid Build Coastguard Worker</ul> 2418*5e7646d2SAndroid Build Coastguard Worker 2419*5e7646d2SAndroid Build Coastguard Worker<p>The value string consists of pairs of keywords, either an option name and 2420*5e7646d2SAndroid Build Coastguard Workerchoice (*MainKeyword OptionKeyword) or a preset identifier and value 2421*5e7646d2SAndroid Build Coastguard Worker(com.apple.print.preset.foo value). The following preset identifiers are currently used:</p> 2422*5e7646d2SAndroid Build Coastguard Worker 2423*5e7646d2SAndroid Build Coastguard Worker<ul> 2424*5e7646d2SAndroid Build Coastguard Worker 2425*5e7646d2SAndroid Build Coastguard Worker <li><code>com.apple.print.preset.graphicsType</code>; specifies the type of printing used for this printing - "General" for general purpose printing and "Photo" for photo printing.</li> 2426*5e7646d2SAndroid Build Coastguard Worker 2427*5e7646d2SAndroid Build Coastguard Worker <li><code>com.apple.print.preset.media-front-coating</code>; specifies the media type selected by this preset - "none" (plain paper), "glossy", "high-gloss", "semi-gloss", "satin", "matte", and "autodetect".</li> 2428*5e7646d2SAndroid Build Coastguard Worker 2429*5e7646d2SAndroid Build Coastguard Worker <li><code>com.apple.print.preset.output-mode</code>; specifies the output mode for this preset - "color" (default for color printers) or "monochrome" (grayscale, default for B&W printers).</li> 2430*5e7646d2SAndroid Build Coastguard Worker 2431*5e7646d2SAndroid Build Coastguard Worker <li><code>com.apple.print.preset.quality</code>; specifies the overall print quality selected by this preset - "low" (draft), "mid" (normal), or "high".</li> 2432*5e7646d2SAndroid Build Coastguard Worker 2433*5e7646d2SAndroid Build Coastguard Worker</ul> 2434*5e7646d2SAndroid Build Coastguard Worker 2435*5e7646d2SAndroid Build Coastguard Worker<p>Presets, like options, can also be localized in multiple languages.</p> 2436*5e7646d2SAndroid Build Coastguard Worker 2437*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 2438*5e7646d2SAndroid Build Coastguard Worker 2439*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2440*5e7646d2SAndroid Build Coastguard Worker*APPrinterPreset Photo_on_Photo_Paper/Photo on Photo Paper: " 2441*5e7646d2SAndroid Build Coastguard Worker *MediaType Glossy 2442*5e7646d2SAndroid Build Coastguard Worker *ColorModel RGB 2443*5e7646d2SAndroid Build Coastguard Worker *Resolution 300dpi 2444*5e7646d2SAndroid Build Coastguard Worker com.apple.print.preset.graphicsType Photo 2445*5e7646d2SAndroid Build Coastguard Worker com.apple.print.preset.quality mid 2446*5e7646d2SAndroid Build Coastguard Worker com.apple.print.preset.media-front-coating glossy" 2447*5e7646d2SAndroid Build Coastguard Worker*End 2448*5e7646d2SAndroid Build Coastguard Worker*fr.APPrinterPreset Photo_on_Photo_Paper/Photo sur papier photographique: "" 2449*5e7646d2SAndroid Build Coastguard Worker</pre> 2450*5e7646d2SAndroid Build Coastguard Worker 2451*5e7646d2SAndroid Build Coastguard Worker 2452*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>macOS 10.3</span><a name='APPrinterUtilityPath'>APPrinterUtilityPath</a></h3> 2453*5e7646d2SAndroid Build Coastguard Worker 2454*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*APPrinterPrinterUtilityPath: "/Library/Printers/vendor/filename.app"</p> 2455*5e7646d2SAndroid Build Coastguard Worker 2456*5e7646d2SAndroid Build Coastguard Worker<p>This keyword defines a GUI application that can be used to do printer 2457*5e7646d2SAndroid Build Coastguard Workermaintenance functions such as cleaning the print head(s). See ... for more 2458*5e7646d2SAndroid Build Coastguard Workerinformation.</p> 2459*5e7646d2SAndroid Build Coastguard Worker 2460*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 2461*5e7646d2SAndroid Build Coastguard Worker 2462*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2463*5e7646d2SAndroid Build Coastguard Worker*% Define the printer utility application 2464*5e7646d2SAndroid Build Coastguard Worker*APPrinterPrinterUtilityPath: "/Library/Printers/vendor/Tools/utility.app" 2465*5e7646d2SAndroid Build Coastguard Worker</pre> 2466*5e7646d2SAndroid Build Coastguard Worker 2467*5e7646d2SAndroid Build Coastguard Worker 2468*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>macOS 10.6</span><a name='APScannerOnly'>APScannerOnly</a></h3> 2469*5e7646d2SAndroid Build Coastguard Worker 2470*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*APScannerOnly: boolean</p> 2471*5e7646d2SAndroid Build Coastguard Worker 2472*5e7646d2SAndroid Build Coastguard Worker<p>This keyword specifies whether the device has scanning but no printing 2473*5e7646d2SAndroid Build Coastguard Workercapabilities. The default is <tt>False</tt>.</p> 2474*5e7646d2SAndroid Build Coastguard Worker 2475*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 2476*5e7646d2SAndroid Build Coastguard Worker 2477*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2478*5e7646d2SAndroid Build Coastguard Worker*APICADriver: True 2479*5e7646d2SAndroid Build Coastguard Worker*APScannerOnly: True 2480*5e7646d2SAndroid Build Coastguard Worker</pre> 2481*5e7646d2SAndroid Build Coastguard Worker 2482*5e7646d2SAndroid Build Coastguard Worker 2483*5e7646d2SAndroid Build Coastguard Worker<h3 class="title"><span class='info'>macOS 10.3</span><a name='APScanAppBundleID'>APScanAppBundleID</a></h3> 2484*5e7646d2SAndroid Build Coastguard Worker 2485*5e7646d2SAndroid Build Coastguard Worker<p class='summary'>*APScanAppBundleID: "bundle ID"</p> 2486*5e7646d2SAndroid Build Coastguard Worker 2487*5e7646d2SAndroid Build Coastguard Worker<p>This keyword defines the application to use when scanning pages from 2488*5e7646d2SAndroid Build Coastguard Workerthe device.</p> 2489*5e7646d2SAndroid Build Coastguard Worker 2490*5e7646d2SAndroid Build Coastguard Worker<p>Examples:</p> 2491*5e7646d2SAndroid Build Coastguard Worker 2492*5e7646d2SAndroid Build Coastguard Worker<pre class='command'> 2493*5e7646d2SAndroid Build Coastguard Worker*APICADriver: True 2494*5e7646d2SAndroid Build Coastguard Worker*APScanAppBundleID: "com.apple.ImageCaptureApp" 2495*5e7646d2SAndroid Build Coastguard Worker</pre> 2496*5e7646d2SAndroid Build Coastguard Worker 2497*5e7646d2SAndroid Build Coastguard Worker 2498*5e7646d2SAndroid Build Coastguard Worker<h2 class='title'><a name='HISTORY'>Change History</a></h2> 2499*5e7646d2SAndroid Build Coastguard Worker 2500*5e7646d2SAndroid Build Coastguard Worker<h3 class="title">Changes in CUPS 2.3</h3> 2501*5e7646d2SAndroid Build Coastguard Worker 2502*5e7646d2SAndroid Build Coastguard Worker<ul> 2503*5e7646d2SAndroid Build Coastguard Worker 2504*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href="#cupsFinishingTemplate"><tt>cupsFinishingTemplate</tt></a> option.</li> 2505*5e7646d2SAndroid Build Coastguard Worker 2506*5e7646d2SAndroid Build Coastguard Worker</ul> 2507*5e7646d2SAndroid Build Coastguard Worker 2508*5e7646d2SAndroid Build Coastguard Worker 2509*5e7646d2SAndroid Build Coastguard Worker<h3 class="title">Changes in CUPS 1.7</h3> 2510*5e7646d2SAndroid Build Coastguard Worker 2511*5e7646d2SAndroid Build Coastguard Worker<ul> 2512*5e7646d2SAndroid Build Coastguard Worker 2513*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href="#cupsJobAccountId"><tt>cupsJobAccountId</tt></a>, 2514*5e7646d2SAndroid Build Coastguard Worker <a href="#cupsJobAccountingUserId"><tt>cupsJobAccountingUserId</tt></a>, 2515*5e7646d2SAndroid Build Coastguard Worker <a href="#cupsJobPassword"><tt>cupsJobPassword</tt></a>, 2516*5e7646d2SAndroid Build Coastguard Worker <a href="#cupsMandatory"><tt>cupsMandatory</tt></a> keywords.</li> 2517*5e7646d2SAndroid Build Coastguard Worker 2518*5e7646d2SAndroid Build Coastguard Worker</ul> 2519*5e7646d2SAndroid Build Coastguard Worker 2520*5e7646d2SAndroid Build Coastguard Worker 2521*5e7646d2SAndroid Build Coastguard Worker<h3 class="title">Changes in CUPS 1.6</h3> 2522*5e7646d2SAndroid Build Coastguard Worker 2523*5e7646d2SAndroid Build Coastguard Worker<ul> 2524*5e7646d2SAndroid Build Coastguard Worker 2525*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href="#cupsPageSizeCategory"><tt>cupsPageSizeCategory</tt></a> keyword (originally defined in CUPS 1.4).</li> 2526*5e7646d2SAndroid Build Coastguard Worker 2527*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href="#cupsMaxCopies"><tt>cupsMaxCopies</tt></a> keyword.</li> 2528*5e7646d2SAndroid Build Coastguard Worker 2529*5e7646d2SAndroid Build Coastguard Worker <li>Documented <a href="#JCLToPDFInterpreter"><tt>JCLToPDFInterpreter</tt></a> keyword.</li> 2530*5e7646d2SAndroid Build Coastguard Worker 2531*5e7646d2SAndroid Build Coastguard Worker <li>Updated <a href="#cupsVersion"><tt>cupsVersion</tt></a> keyword documentation to list all current releases of CUPS.</li> 2532*5e7646d2SAndroid Build Coastguard Worker 2533*5e7646d2SAndroid Build Coastguard Worker</ul> 2534*5e7646d2SAndroid Build Coastguard Worker 2535*5e7646d2SAndroid Build Coastguard Worker 2536*5e7646d2SAndroid Build Coastguard Worker<h3 class="title">Changes in CUPS 1.5</h3> 2537*5e7646d2SAndroid Build Coastguard Worker 2538*5e7646d2SAndroid Build Coastguard Worker<ul> 2539*5e7646d2SAndroid Build Coastguard Worker 2540*5e7646d2SAndroid Build Coastguard Worker <li>Changes all instances of PPD attributes to PPD keywords, to be consistent with the parent specification from Adobe.</li> 2541*5e7646d2SAndroid Build Coastguard Worker 2542*5e7646d2SAndroid Build Coastguard Worker</ul> 2543*5e7646d2SAndroid Build Coastguard Worker 2544*5e7646d2SAndroid Build Coastguard Worker 2545*5e7646d2SAndroid Build Coastguard Worker<h3 class="title">Changes in CUPS 1.4.5</h3> 2546*5e7646d2SAndroid Build Coastguard Worker 2547*5e7646d2SAndroid Build Coastguard Worker<ul> 2548*5e7646d2SAndroid Build Coastguard Worker 2549*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#cupsPrintQuality'><tt>cupsPrintQuality</tt></a> UI keyword.</li> 2550*5e7646d2SAndroid Build Coastguard Worker 2551*5e7646d2SAndroid Build Coastguard Worker <li>Added new properties and values for the <a href='#APPrinterPreset'><tt>APPrinterPreset</tt></a> keyword.</li> 2552*5e7646d2SAndroid Build Coastguard Worker 2553*5e7646d2SAndroid Build Coastguard Worker</ul> 2554*5e7646d2SAndroid Build Coastguard Worker 2555*5e7646d2SAndroid Build Coastguard Worker 2556*5e7646d2SAndroid Build Coastguard Worker<h3 class="title">Changes in CUPS 1.4</h3> 2557*5e7646d2SAndroid Build Coastguard Worker 2558*5e7646d2SAndroid Build Coastguard Worker<ul> 2559*5e7646d2SAndroid Build Coastguard Worker 2560*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#APICADriver'><tt>APICADriver</tt></a> 2561*5e7646d2SAndroid Build Coastguard Worker keyword.</li> 2562*5e7646d2SAndroid Build Coastguard Worker 2563*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#cupsCommands'><tt>cupsCommands</tt></a> 2564*5e7646d2SAndroid Build Coastguard Worker keyword.</li> 2565*5e7646d2SAndroid Build Coastguard Worker 2566*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#cupsMarkerName'><tt>cupsMarkerName</tt></a> 2567*5e7646d2SAndroid Build Coastguard Worker keyword.</li> 2568*5e7646d2SAndroid Build Coastguard Worker 2569*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#cupsMarkerNotice'><tt>cupsMarkerNotice</tt></a> 2570*5e7646d2SAndroid Build Coastguard Worker keyword.</li> 2571*5e7646d2SAndroid Build Coastguard Worker 2572*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#cupsPJLDisplay'><tt>cupsPJLDisplay</tt></a> 2573*5e7646d2SAndroid Build Coastguard Worker keyword.</li> 2574*5e7646d2SAndroid Build Coastguard Worker 2575*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#cupsSNMPSupplies'><tt>cupsSNMPSupplies</tt></a> 2576*5e7646d2SAndroid Build Coastguard Worker keyword.</li> 2577*5e7646d2SAndroid Build Coastguard Worker 2578*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#cupsUIResolver'><tt>cupsUIResolver</tt></a> and 2579*5e7646d2SAndroid Build Coastguard Worker <a href='#cupsUIConstraints'><tt>cupsUIConstraints</tt></a> 2580*5e7646d2SAndroid Build Coastguard Worker keywords.</li> 2581*5e7646d2SAndroid Build Coastguard Worker 2582*5e7646d2SAndroid Build Coastguard Worker <li>Added 2583*5e7646d2SAndroid Build Coastguard Worker <a href='#cupsMediaQualifier2'><tt>cupsMediaQualifier2</tt></a>, 2584*5e7646d2SAndroid Build Coastguard Worker <a href='#cupsMediaQualifier3'><tt>cupsMediaQualifier3</tt></a>, 2585*5e7646d2SAndroid Build Coastguard Worker <a href='#cupsMinSize'><tt>cupsMinSize</tt></a>, and 2586*5e7646d2SAndroid Build Coastguard Worker <a href='#cupsMaxSize'><tt>cupsMaxSize</tt></a> keywords.</li> 2587*5e7646d2SAndroid Build Coastguard Worker 2588*5e7646d2SAndroid Build Coastguard Worker</ul> 2589*5e7646d2SAndroid Build Coastguard Worker 2590*5e7646d2SAndroid Build Coastguard Worker 2591*5e7646d2SAndroid Build Coastguard Worker<h3 class="title">Changes in CUPS 1.3.1</h3> 2592*5e7646d2SAndroid Build Coastguard Worker 2593*5e7646d2SAndroid Build Coastguard Worker<ul> 2594*5e7646d2SAndroid Build Coastguard Worker 2595*5e7646d2SAndroid Build Coastguard Worker <li>Added missing macOS <tt>AP</tt> keywords.</li> 2596*5e7646d2SAndroid Build Coastguard Worker 2597*5e7646d2SAndroid Build Coastguard Worker <li>Added section on auto-configuration including the 2598*5e7646d2SAndroid Build Coastguard Worker <tt>OID<i>MainKeyword</i></tt> and <tt>?<i>MainKeyword</i></tt> 2599*5e7646d2SAndroid Build Coastguard Worker keywords.</li> 2600*5e7646d2SAndroid Build Coastguard Worker 2601*5e7646d2SAndroid Build Coastguard Worker <li>Minor reorganization.</li> 2602*5e7646d2SAndroid Build Coastguard Worker 2603*5e7646d2SAndroid Build Coastguard Worker</ul> 2604*5e7646d2SAndroid Build Coastguard Worker 2605*5e7646d2SAndroid Build Coastguard Worker 2606*5e7646d2SAndroid Build Coastguard Worker<h3 class="title">Changes in CUPS 1.3</h3> 2607*5e7646d2SAndroid Build Coastguard Worker 2608*5e7646d2SAndroid Build Coastguard Worker<ul> 2609*5e7646d2SAndroid Build Coastguard Worker 2610*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#cupsBackSide'><tt>cupsBackSide</tt></a> and 2611*5e7646d2SAndroid Build Coastguard Worker deprecated <a href='#cupsFlipDuplex'><tt>cupsFlipDuplex</tt></a>.</li> 2612*5e7646d2SAndroid Build Coastguard Worker 2613*5e7646d2SAndroid Build Coastguard Worker <li>Added text URI information to 2614*5e7646d2SAndroid Build Coastguard Worker <a href='#cupsIPPReason'><tt>cupsIPPReason</tt></a> documentation.</li> 2615*5e7646d2SAndroid Build Coastguard Worker 2616*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#APPrinterPreset'><tt>APPrinterPreset</tt></a>, 2617*5e7646d2SAndroid Build Coastguard Worker <a href='#cupsIPPFinishings'><tt>cupsIPPFinishings</tt></a>, and 2618*5e7646d2SAndroid Build Coastguard Worker <a href='#cupsPreFilter'><tt>cupsPreFilter</tt></a> keywords.</li> 2619*5e7646d2SAndroid Build Coastguard Worker 2620*5e7646d2SAndroid Build Coastguard Worker <li>Added discussion of custom option code, sample 2621*5e7646d2SAndroid Build Coastguard Worker <tt>CustomPageSize</tt> code, and "do not use dict and put" note.</li> 2622*5e7646d2SAndroid Build Coastguard Worker 2623*5e7646d2SAndroid Build Coastguard Worker</ul> 2624*5e7646d2SAndroid Build Coastguard Worker 2625*5e7646d2SAndroid Build Coastguard Worker 2626*5e7646d2SAndroid Build Coastguard Worker<h3 class="title">Changes in CUPS 1.2.8</h3> 2627*5e7646d2SAndroid Build Coastguard Worker 2628*5e7646d2SAndroid Build Coastguard Worker<ul> 2629*5e7646d2SAndroid Build Coastguard Worker 2630*5e7646d2SAndroid Build Coastguard Worker <li>Added section on supported PostScript commands for raster 2631*5e7646d2SAndroid Build Coastguard Worker drivers</li> 2632*5e7646d2SAndroid Build Coastguard Worker 2633*5e7646d2SAndroid Build Coastguard Worker</ul> 2634*5e7646d2SAndroid Build Coastguard Worker 2635*5e7646d2SAndroid Build Coastguard Worker 2636*5e7646d2SAndroid Build Coastguard Worker<h3 class="title">Changes in CUPS 1.2</h3> 2637*5e7646d2SAndroid Build Coastguard Worker 2638*5e7646d2SAndroid Build Coastguard Worker<ul> 2639*5e7646d2SAndroid Build Coastguard Worker 2640*5e7646d2SAndroid Build Coastguard Worker <li>Added globalization support keywords</li> 2641*5e7646d2SAndroid Build Coastguard Worker 2642*5e7646d2SAndroid Build Coastguard Worker <li>Added custom option values support</li> 2643*5e7646d2SAndroid Build Coastguard Worker 2644*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#APHelpBook'><tt>APHelpBook</tt></a> keyword</li> 2645*5e7646d2SAndroid Build Coastguard Worker 2646*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#APDuplexRequiresFlippedMargin'><tt>APDuplexRequiresFlippedMargin</tt></a> 2647*5e7646d2SAndroid Build Coastguard Worker keyword</li> 2648*5e7646d2SAndroid Build Coastguard Worker 2649*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#cupsICCProfile'><tt>cupsICCProfile</tt></a> keyword</li> 2650*5e7646d2SAndroid Build Coastguard Worker 2651*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#cupsIPPReason'><tt>cupsIPPReason</tt></a> keyword</li> 2652*5e7646d2SAndroid Build Coastguard Worker 2653*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#cupsLanguages'><tt>cupsLanguages</tt></a> keyword</li> 2654*5e7646d2SAndroid Build Coastguard Worker 2655*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#cupsPortMonitor'><tt>cupsPortMonitor</tt></a> keyword</li> 2656*5e7646d2SAndroid Build Coastguard Worker 2657*5e7646d2SAndroid Build Coastguard Worker <li>Removed <tt>cupsProtocol</tt> keyword</li> 2658*5e7646d2SAndroid Build Coastguard Worker 2659*5e7646d2SAndroid Build Coastguard Worker</ul> 2660*5e7646d2SAndroid Build Coastguard Worker 2661*5e7646d2SAndroid Build Coastguard Worker 2662*5e7646d2SAndroid Build Coastguard Worker<h3 class="title">Changes in CUPS 1.1</h3> 2663*5e7646d2SAndroid Build Coastguard Worker 2664*5e7646d2SAndroid Build Coastguard Worker<ul> 2665*5e7646d2SAndroid Build Coastguard Worker 2666*5e7646d2SAndroid Build Coastguard Worker <li>Added <a href='#cupsFlipDuplex'><tt>cupsFlipDuplex</tt></a> keyword</li> 2667*5e7646d2SAndroid Build Coastguard Worker 2668*5e7646d2SAndroid Build Coastguard Worker <li>Added <tt>cupsProtocol</tt> keyword</li> 2669*5e7646d2SAndroid Build Coastguard Worker 2670*5e7646d2SAndroid Build Coastguard Worker</ul> 2671*5e7646d2SAndroid Build Coastguard Worker </div> 2672*5e7646d2SAndroid Build Coastguard Worker </body> 2673*5e7646d2SAndroid Build Coastguard Worker</html> 2674