Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sh import lp, lpstat, lpoptions, lpq
- class APICups:
- self.cupsOptions = {
- "media" : ["Size of the paper", ["Letter", 'Legal ', 'A4 ', 'COM10 ', 'DL ', 'Transparency ', 'Upper ', 'Lower', 'MultiPurpose','LargeCapacity', "Custom.WIDTHxLENGTH"]],
- "orientation" : ["Orientation of printing",
- ["landscape", "portrait",
- ["orientation-requested",
- ["Reverse Landscape", 5, "Reverse Portrait", 6]]]],
- "sides" : ["Sides of the paper",
- ["two-sided-short-edge", "two-sided-long-edge", "one-sided"]],
- "job-sheets" : ["Banner of the page",
- ["none", "classified", "confidential", "secret", "standart", "topsecret", "unclassified"]],
- "job-hold-until" : ["Define the time to job will be make",
- ["indefinitive", "day-time", "night", "second-shift", "third-shift", "weekend", "HH:MM"]],
- "job-priorit" : ["Defini priority of the job"],
- "outputorder" : ["Order of exit pages", ["normal", "reverse"]],
- "page-ranges" : ["Specificed a range of pages to print"],
- "number-ip" : ["Choose a number of pages impress in one page",
- [1,2,4,6,9,16]],
- "page-border" : ["Choose border to draw around each page",
- ["double", "double-thick", "none", "single", "single-thick"]],
- "number-up-layout" : ["Align of the page in the paper",
- ["bottom", "top", "left", "right"]],
- "fit-to-page" : ["Scaling file for the page"],
- "mirror" : ["Printing mirror pages"]
- }
- def __init__(self, filename, options=[]):
- self.filename = filename
- self.options = options
- self.printer_avaliable = ""
- self.dictionary_options = ""
- def impress(self):
- try:
- arguments = [f"-o {arg}" for arg in self.options]
- arguments.append(self.filename)
- lp(arguments)
- except Exception as error:
- return error
- def getPrinter(self):
- command_return = lpstat("-p", "-d")
- command_return = command_return.split("\n")
- impress_list = [line.split(" ")[1] for line in command_return[1::-1]]
- self.printer_avaliable = impress_list
- return impress_list
- def checkPrinter(self, printer):
- if self.printer_avaliable == "":
- self.printer_avaliable == self.getPrinter()
- if printer not in self.printer_avaliable:
- return "This printer not avaliable in your system, try getPrinter() function to see the avaliable printers"
- else:
- return True
- def setDefaultPrinter(self, printer):
- if self.checkPrinter(printer):
- lpoptions("-d", printer)
- return f"Printer: {printer} is now default!"
- def getPrinterOptions(self, printer):
- if self.checkPrinter:
- all_brute_options = lpoptions("-p", printer, "-l").split("\n")
- all_brute_options = all_brute_options.split(":")
- map_options = map(all_brute_options[0::2], all_brute_options[1::2])
- self.dictionary_options = dict(map_options)
- return self.dictionary_options
- def getJobsList(self):
- """
- Working for a only printer!
- """
- result = lpq().split("\n")
- all_workings = {}
- all_workings["Printer"] = result[0].split(" ")[0]
- jobs_id_list = [lista.split(" ") for lista in result[2::]]
- jobs_list = [list(set(jobs_id_list)) for job in jobs_id_list]
- all_workings["Order"] = [job[0] for job in jobs_list]
- all_workings["Owner"] = [job[1] for job in jobs_list]
- all_workings["Jobs ID"] = [job[2] for job in jobs_list]
- all_workings["Filename"] = [job[3] for job in jobs_list]
- return all_workings
- def startJobId(self, job_id):
- return lp("-i", job_id, "-H", "resume")
- """
- Guide to Help (Portuguese)
- Print diretamente para a impressora
- lp filename || lpr filename
- Mostrar as impressoras disponíveis
- lpstat -p -d
- -p == impressoras
- -d == a default
- Escolhendo uma impressora como default
- lpoptions -d impressora
- Imprimir diretamente da saída de um programa
- program | lp
- program | lp -d printer
- program | lpr
- program | lpr -P printer
- Especificar a forma de impressão
- lp -o landscape -o fit-to-page -o media=A4 filename.jpg
- lpr -o landscape -o fit-to-page -o media=A4 filename.jpg
- Ver as opções de uma impressora
- lpoptions -p printer -l
- Criar opções salvas impressora
- lpoptions -p printer/instance -o name=value ...
- Imprimir muitas cópias
- lp -n num-copies filename
- lpr -#num-copies filename
- Cancelar uma impressão
- cancel job-id
- lprm job-id
- Obter job-id
- lpq
- lpstat
- Mover trabalho para outra impressora
- lpmove job-id destination
- Selecionar as especificações da impressão
- lp -o media=Letter filename
- lp -o media=Letter,MultiPurpose filename
- lpr -o media=Letter,Transparency filename
- lpr -o media=Letter,MultiPurpose,Transparency filename
- Selecionar o tamanho da folha
- lp -o media=Custom.WIDTHxLENGTH filename
- lp -o media=Custom.WIDTHxLENGTHin filename
- lp -o media=Custom.WIDTHxLENGTHcm filename
- lp -o media=Custom.WIDTHxLENGTHmm filename
- Orientações da página
- lp -o landscape filename
- lpr -o landscape filename
- -o orientation-requested=N option rotates the page depending on the value of N:
- -o orientation-requested=3 - portrait orientation (no rotation)
- -o orientation-requested=4 - landscape orientation (90 degrees)
- -o orientation-requested=5 - reverse landscape or seascape orientation (270 degrees)
- -o orientation-requested=6 reverse portrait or upside-down orientation (180 degrees)
- -o job-hold-until=when option tells CUPS to delay printing until the "when" time, which can be one of the following:
- -o job-hold-until=indefinite; print only after released by the user or an administrator
- -o job-hold-until=day-time; print from 6am to 6pm local time
- -o job-hold-until=night; print from 6pm to 6am local time
- -o job-hold-until=second-shift; print from 4pm to 12am local time
- -o job-hold-until=third-shift; print from 12am to 8am local time
- -o job-hold-until=weekend; print on Saturday or Sunday
- -o job-hold-until=HH:MM; print at the specified UTC time
- Acionar trabalho indefinite
- lp -i job-id -H resume
- Nível de Prioridade
- -o job-priority=NNN
- Páginas Específicas
- lp -o page-ranges=1 filename
- lp -o page-ranges=1-4 filename
- Páginas por folha
- lp -o number-up=1 filename
- lp -o number-up=2 filename
- Bordas nas páginas
- -o page-border=value
- Alinhamento na página
- -o number-up-layout=btlr
- Corte de página
- lp -o fit-to-page filename
- Ordem de impressão
- lp -o outputorder=reverse filename
- lpr -o outputorder=reverse filename
- """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement