354 | | page = pages.get(pnum, pages.get(pnum - 1, pages.get(0, { "copies" : 1, "mediasource" : "Main", "mediasize" : "Default", "mediatype" : "Plain", "orientation" : "Portrait", "escaped" : []}))) |
| 359 | page = pages.get(pnum, pages.get(pnum - 1, pages.get(0, { "copies" : 1, "mediasource" : "Main", "mediasize" : "Default", "mediatype" : "Plain", "orientation" : "Portrait", "escaped" : ""}))) |
356 | | if not pjlstuff : |
357 | | pjlcopies = 1 |
358 | | else : |
359 | | pjlstatements.extend(pjlstuff) |
360 | | newpjl = "\n".join(pjlstatements) |
361 | | copiesstatement = newpjl.rfind("@PJL SET COPIES=") |
362 | | qtystatement = newpjl.rfind("@PJL SET QTY=") |
363 | | if copiesstatement > qtystatement : |
364 | | # we use the COPIES= statement |
365 | | try : |
366 | | pjlcopies = int(newpjl[copiesstatement+16:].split()[0].strip()) |
367 | | except : |
368 | | pjlcopies = 1 |
369 | | elif qtystatement > copiesstatement : |
370 | | # we use the QTY= statement |
371 | | try : |
372 | | pjlcopies = int(newpjl[qtystatement+13:].split()[0].strip()) |
373 | | except : |
374 | | pjlcopies = 1 |
| 361 | if pjlstuff : |
| 362 | pjlparser = pjl.PJLParser(pjlstuff) |
| 363 | nbdefaultcopies = int(pjlparser.default_variables.get("COPIES", -1)) |
| 364 | nbcopies = int(pjlparser.environment_variables.get("COPIES", -1)) |
| 365 | nbdefaultqty = int(pjlparser.default_variables.get("QTY", -1)) |
| 366 | nbqty = int(pjlparser.environment_variables.get("QTY", -1)) |
| 367 | if nbdefaultcopies > -1 : |
| 368 | defaultpjlcopies = nbdefaultcopies |
| 369 | if nbdefaultqty > -1 : |
| 370 | defaultpjlcopies = nbdefaultqty |
| 371 | if nbcopies > -1 : |
| 372 | pjlcopies = nbcopies |
| 373 | elif nbqty > -1 : |
| 374 | pjlcopies = nbqty |
376 | | # both can't be equal unless they both equal -1 (not found) |
377 | | pjlcopies = 1 |
| 376 | if oldpjlcopies == -1 : |
| 377 | pjlcopies = defaultpjlcopies |
| 378 | else : |
| 379 | pjlcopies = oldpjlcopies |
| 380 | defaultdm = pjlparser.default_variables.get("DUPLEX", "") |
| 381 | if defaultdm : |
| 382 | if defaultdm.upper() == "ON" : |
| 383 | defaultduplexmode = "Duplex" |
| 384 | else : |
| 385 | defaultduplexmode = "Simplex" |
| 386 | envdm = pjlparser.environment_variables.get("DUPLEX", "") |
| 387 | if envdm : |
| 388 | if envdm.upper() == "ON" : |
| 389 | duplexmode = "Duplex" |
| 390 | else : |
| 391 | duplexmode = "Simplex" |
| 392 | else : |
| 393 | if not oldduplexmode : |
| 394 | duplexmode = defaultduplexmode |
| 395 | else : |
| 396 | duplexmode = oldduplexmode |
| 397 | defaultps = pjlparser.default_variables.get("PAPER", "") |
| 398 | if defaultps : |
| 399 | defaultpapersize = defaultps |
| 400 | envps = pjlparser.environment_variables.get("PAPER", "") |
| 401 | if envps : |
| 402 | papersize = envps |
| 403 | else : |
| 404 | if not oldpapersize : |
| 405 | papersize = defaultpapersize |
| 406 | else : |
| 407 | papersize = oldpapersize |
| 408 | else : |
| 409 | if oldpjlcopies == -1 : |
| 410 | pjlcopies = defaultpjlcopies |
| 411 | else : |
| 412 | pjlcopies = oldpjlcopies |
| 413 | if not oldduplexmode : |
| 414 | duplexmode = defaultduplexmode |
| 415 | else : |
| 416 | duplexmode = oldduplexmode |
| 417 | if not oldpapersize : |
| 418 | papersize = defaultpapersize |
| 419 | else : |
| 420 | papersize = oldpapersize |
| 421 | duplexmode = oldduplexmode |
| 422 | papersize = oldpapersize or page["mediasize"] |
| 423 | if page["mediasize"] != "Default" : |
| 424 | papersize = page["mediasize"] |
| 425 | if not duplexmode : |
| 426 | duplexmode = oldduplexmode or defaultduplexmode |
| 427 | oldpjlcopies = pjlcopies |
| 428 | oldduplexmode = duplexmode |
| 429 | oldpapersize = papersize |