Beispiel #1
0
def clearJobsQueue():
    printer = win32print.OpenPrinter('PDFCreator')
    jobs = win32print.EnumJobs(printer, 0, 100, 2)
    while len(jobs) > 0:
        for currentJob in jobs:
            print '\nDeleting print job with id [' + str(currentJob['JobId']) + ']'
            win32print.SetJob(printer, currentJob['JobId'], 0, None, win32print.JOB_CONTROL_DELETE)
        win32print.ClosePrinter(printer)
        time.sleep(.5)
        printer = win32print.OpenPrinter('PDFCreator')
        jobs = win32print.EnumJobs(printer, 0, 100, 2)
    win32print.ClosePrinter(printer)
Beispiel #2
0
def do(filename):
    filename = filename.read()
    # word wrap the log, so that it completely is on page
    formatted_log = '\r\n'.join(textwrap.wrap(filename, width=75, replace_whitespace=False))
    if platform.system() == 'Windows':  # if we are on windows, print via this section
        import sys
        import win32print  # as this module is only available under windows, import it here to prevent errors
        printer_name = win32print.GetDefaultPrinter()
        #
        # raw_data could equally be raw PCL/PS read from
        #  some print-to-file operation
        #
        if sys.version_info >= (3,):
            raw_data = bytes(formatted_log)
        else:
            raw_data = formatted_log

        h_printer = win32print.OpenPrinter(printer_name)
        try:
            _ = win32print.StartDocPrinter(h_printer, 1, ("Log File Printout", None, "RAW"))
            try:
                win32print.StartPagePrinter(h_printer)
                win32print.WritePrinter(h_printer, raw_data)
                win32print.EndPagePrinter(h_printer)
            finally:
                win32print.EndDocPrinter(h_printer)
        finally:
            win32print.ClosePrinter(h_printer)

    else:  # if we are on a unix-like, print via this section
        import subprocess
        lpr = subprocess.Popen("/usr/bin/lpr", stdin=subprocess.PIPE)
        lpr.stdin.write(formatted_log)
Beispiel #3
0
def printPdf(selPrt, pdfFN, paperForm, numCopies):
    #Save the current default Printer
    dfltPrt = win32print.GetDefaultPrinter()
    win32print.SetDefaultPrinter(selPrt)
    #reportStat('====>> DefaultPrinter: {}'.format( win32print.GetDefaultPrinter()), None)

    handle, level, prtProperties = prepPrinter(selPrt)
    setXeroxAttr(prtProperties, paperForm, numCopies)

    #createDC(dfltPrt, prtProperties['pDevMode'])

    ## 'SetPrinter' fails because of 'Access is denied.'
    ## But the attribute 'Duplex' is set correctly
    #try:
    win32print.SetPrinter(handle, level, prtProperties, 0)
    #except:
    #    #reportStat("win32print.SetPrinter: set 'Duplex'", None)
    #    pass

    #cfgPrt(selPrt)

    res = win32api.ShellExecute(0, 'print', pdfFN, None, '.', 0)
    win32print.ClosePrinter(handle)

    handle, level, prtProperties = prepPrinter(selPrt)
    showpDevMode(prtProperties)

    #Restore the current default Printer
    win32print.SetDefaultPrinter(dfltPrt)
Beispiel #4
0
def print_raw_win32print(content, printer_name, job_description):
    """ Start a print job and send raw data to the printer.

    Args:
        content: The raw data to print.
        printer_name: The printer's name.
        job_description: A description of the job.

    Returns:
        None

    References:
        * http://timgolden.me.uk/python/win32_how_do_i/print.html
        * http://timgolden.me.uk/pywin32-docs/win32print.html
            Even Tim Golden recommends just calling `print <filename> /d:<printer>` on the shell.
        * https://docs.microsoft.com/en-us/windows/win32/printdocs/using-the-printing-functions
            (For C++ applications).
        * http://www.icodeguru.com/WebServer/Python-Programming-on-Win32/ch10.htm
    """
    import win32print
    p = win32print.OpenPrinter(printer_name)
    job = win32print.StartDocPrinter(p, 1, (job_description, None, "RAW"))
    win32print.StartPagePrinter(p)
    win32print.WritePrinter(p, content)
    win32print.EndPagePrinter(p)
    win32print.EndDocPrinter(p)
    win32print.ClosePrinter(p)
Beispiel #5
0
def print_job_checker():
    server = socket.gethostname()
    while True:
        jobs = []
        for p in win32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL, None,
                                         1):
            flags, desc, name, comment = p
            phandle = win32print.OpenPrinter(name)
            print_jobs = win32print.EnumJobs(phandle, 0, -1, 1)
            if print_jobs:
                jobs.extend(list(print_jobs))
            for job in print_jobs:

                document = job["pDocument"]
                username = job['pUserName']
                identity = job['JobId']
                jobstate = job['Status']
                machinename = job['pMachineName'].replace("\\\\", "")
                pTime = datetime.datetime.now().isoformat()
                today = datetime.date.today().isoformat()
                Pages = job['TotalPages']
                printstr = "[Server:" + server + "],[Who:" + username + "],[Computer:" + machinename + "],[Print Time:" + pTime + "],[JobID:" + str(
                    identity) + "]"
                print(printstr)
            win32print.ClosePrinter(phandle)
        time.sleep(0.5)
Beispiel #6
0
    def GetJobList(self, printer):

        phandle = win32print.OpenPrinter(printer)
        #now get all the print jobs (start at job 0 and -1 for all jobs)
        jlist = win32print.EnumJobs(phandle, 0, -1, 1)
        win32print.ClosePrinter(phandle)
        return jlist  # this lists all jobs on all printers
    def printer1(self, img):  #调用打印机,请事先把默认打印机,纸张格式等参数从电脑上调好
        print('start print ' + img)
        printer_name = win32print.GetDefaultPrinter()
        #
        # raw_data could equally be raw PCL/PS read from
        #  some print-to-file operation
        #
        if sys.version_info >= (3, ):
            raw_data = bytes(a, "utf-8")
        else:
            raw_data = "This is a test"

        hPrinter = win32print.OpenPrinter(printer_name)
        try:
            hJob = win32print.StartDocPrinter(hPrinter, 1, (img, None, "RAW"))
            print('here1' + img)
            try:
                win32print.StartPagePrinter(hPrinter)
                win32print.WritePrinter(hPrinter, raw_data)
                win32print.EndPagePrinter(hPrinter)
                print('here2')
            finally:
                win32print.EndDocPrinter(hPrinter)
                print('here3')
        finally:
            win32print.ClosePrinter(hPrinter)
            print('here4')
def thermalPrinter(base64code):
    
    try:
        raw_str     = str(base64code)
        raw_base    = base64.b64decode(raw_str)
        data        = bytes(raw_base)
        nameprinter = win32print.GetDefaultPrinter()
        
        hPrinter = win32print.OpenPrinter(nameprinter)
        win32print.StartDocPrinter(hPrinter, 1, ("Print data otros pagos", None, "RAW"))

        try:
            win32print.StartPagePrinter(hPrinter)
            win32print.WritePrinter(hPrinter, data)
            win32print.EndPagePrinter(hPrinter)
            win32print.EndDocPrinter(hPrinter)
            win32print.ClosePrinter(hPrinter)

        except Exception as e:

            return jsonify({
                "code":500,
                "message":str(e.message)
            })
    except Exception as e:
        return jsonify({
            "code":500,
            "message":str(e.message)
        })
    return jsonify({
        "code":200,
        "message":"printer!!!"
    })
Beispiel #9
0
def print_document(filename, printer_name):
    print(printer_name)
    # printer_name = win32print.GetDefaultPrinter()
    if sys.version_info >= (3, ):
        fp = open("./static/UPLOADFOLDER/" + filename, "rb")
        raw_data = bytes("This is a test", "utf-8")
    else:
        fp = open("./static/UPLOADFOLDER/" + filename, "r")
        raw_data = "This is a test"

    data = fp.read()
    print(printer_name)

    hPrinter = win32print.OpenPrinter(printer_name)
    try:
        hJob = win32print.StartDocPrinter(hPrinter, 1, (filename, None, "RAW"))
        try:
            jobInfo = win32print.GetJob(hPrinter, hJob, 1)
            win32print.SetJob(hPrinter, hJob, 1, jobInfo,
                              win32print.JOB_CONTROL_SENT_TO_PRINTER)
            win32print.StartPagePrinter(hPrinter)
            win32print.WritePrinter(hPrinter, data)
            win32print.EndPagePrinter(hPrinter)
        finally:
            win32print.EndDocPrinter(hPrinter)
    finally:
        win32print.ClosePrinter(hPrinter)

    # os.startfile("H:/Projects/College/LanPrint/static/UPLOADFOLDER/"+filename, "print")
    return Response("Printing Document", status=200, mimetype='text/plain')
Beispiel #10
0
def printer(raw_data):
    default_printer = win32print.GetDefaultPrinter()
    h = win32print.OpenPrinter(default_printer)
    win32print.StartDocPrinter(h, 1, ("", "", "RAW"))
    win32print.WritePrinter(h, raw_data)
    win32print.EndDocPrinter(h)
    win32print.ClosePrinter(h)
Beispiel #11
0
 def close(self):
     if not self.hPrinter:
         return
     win32print.EndPagePrinter(self.hPrinter)
     win32print.EndDocPrinter(self.hPrinter)
     win32print.ClosePrinter(self.hPrinter)
     self.hPrinter = None
Beispiel #12
0
            def info():
                texto_a_imprimir = self.texto.get("1.0", "end")
                if self.ruta != "":
                    direccion = self.ruta.split("/")[-1]
                    nombre_archivo = tempfile.mktemp("_{}".format(direccion))
                else:
                    nombre_archivo = tempfile.mktemp(".txt")

                fichero = open(nombre_archivo, "w")
                fichero.write(texto_a_imprimir)

                if sys.version_info >= (3, ):
                    raw_data = bytes(nombre_archivo, "utf-8")
                else:
                    raw_data = nombre_archivo

                hPrinter = win32print.OpenPrinter(
                    combo_lista_impr.selection_get())
                try:
                    hJob = win32print.StartDocPrinter(
                        hPrinter, 1, (nombre_archivo, None, "RAW"))
                    try:
                        win32api.ShellExecute(0, "print", nombre_archivo, None,
                                              ".", 0)
                        win32print.StartPagePrinter(hPrinter)
                        win32print.WritePrinter(hPrinter, raw_data)
                        win32print.EndPagePrinter(hPrinter)
                    finally:
                        win32print.EndDocPrinter(hPrinter)
                finally:
                    win32print.ClosePrinter(hPrinter)

                fichero.close()
Beispiel #13
0
def SendToBP33(fn_bpl, req_confirm = True):

    printers = win32print.EnumPrinters(2)
    for p in printers:
        if p[3] == 'BBP33':
            printer_name = p[2]
            #print('Found printer ' + printer_name)

    if (printer_name):
        cont = 'y'
        if(req_confirm):
            cont = input('Use ' + printer_name + ' to print labels? [y/n]\n')
        if (cont == 'y'):
            f_bpl = open(fn_bpl, "rb")
            hPrinter = win32print.OpenPrinter(printer_name)
            try:
              hJob = win32print.StartDocPrinter (hPrinter, 1, ("Cable labels", None, "RAW"))
              try:
                win32print.StartPagePrinter (hPrinter)
                win32print.WritePrinter (hPrinter, f_bpl.read())
                win32print.EndPagePrinter (hPrinter)
              finally:
                win32print.EndDocPrinter (hPrinter)
            finally:
              win32print.ClosePrinter (hPrinter)
            f_bpl.close()
        else:
Beispiel #14
0
    def ImprimirArquivo(numeroPedido,
                        event=None):  #Função para Imprimir o Pedido
        try:

            # Definindo o caminho do arquivo para impressão
            arquivo = "C:/Users/Itamar/Documents/GitHub/Sistema-Scripts/pedidos/Pedido" + str(
                numeroPedido) + '.txt'
            _printer = StringVar(Pedidos_window)
            # Setando a impressora padrão do windows
            _printer.set(win32print.GetDefaultPrinter())
            #print(_printer)

            PRINTER_DEFAULTS = {"DesiredAccess": win32print.PRINTER_ALL_ACCESS}
            pHandle = win32print.OpenPrinter(_printer.get(), PRINTER_DEFAULTS)
            properties = win32print.GetPrinter(pHandle, 2)
            win32print.SetPrinter(pHandle, 2, properties, 0)

            try:
                #win32print.SetDefaultPrinter(_printer.get())
                win32api.ShellExecute(0, "print", arquivo, None, ".", 0)
                win32print.ClosePrinter(pHandle)
            except:
                pass
                messagebox.showerror("Error",
                                     "Não foi passivel imprimir o pedido.")
        except:
            pass
            messagebox.showerror("Error",
                                 "Não foi passivel imprimir o pedido.")
Beispiel #15
0
def getJobDetail(printer, id):
    printer_handle = win32print.OpenPrinter(printer)

    job_detail = win32print.GetJob(printer_handle, id, 2)
    win32print.ClosePrinter(printer_handle)

    return job_detail
Beispiel #16
0
def GetJobList(printer):
    printer_handle = win32print.OpenPrinter(printer)

    job_list = win32print.EnumJobs(printer_handle, 0, -1, 2)
    win32print.ClosePrinter(printer_handle)

    return job_list
Beispiel #17
0
 def EnumPrinter(self):
     handle = win32print.OpenPrinter(self.printer_name)
     win32print.GetPrinter(handle)
     win32print.ClosePrinter(handle)
     printers = []
     for p in win32print.EnumPrinters(2):
         printers.append(p[1].split(',')[0])
     return printers
Beispiel #18
0
 def close(self):
     p = self.printer
     win32print.EndPagePrinter(p)
     win32print.EndDocPrinter(p)
     win32print.ClosePrinter(p)
     #: Sync
     self.transport.connected = False
     self.transport.protocol.connection_lost()
Beispiel #19
0
 def print_document(self, document):
     raw_data = document.cut_if_uncut().encoded
     win_printer = win32print.GetDefaultPrinter()
     printer = win32print.OpenPrinter(win_printer)
     win32print.StartDocPrinter(printer, 1, ('CASHDRAWERPRINT', None, None))
     win32print.WritePrinter(printer, raw_data)
     win32print.EndDocPrinter(printer)
     win32print.ClosePrinter(printer)
Beispiel #20
0
def get_printer_info(name):
    printer = win32print.OpenPrinter(name)
    try:
        printer_info = win32print.GetPrinter(printer)
    finally:
        win32print.ClosePrinter(printer)

    return printer_info
def printer(raw_data):
    hPrinter = win32print.OpenPrinter(printer_name)
    hJob = win32print.StartDocPrinter(hPrinter, 1,
                                      ("test of raw data", None, "RAW"))
    win32print.StartPagePrinter(hPrinter)
    win32print.WritePrinter(hPrinter, raw_data)
    win32print.EndPagePrinter(hPrinter)
    win32print.EndDocPrinter(hPrinter)
    win32print.ClosePrinter(hPrinter)
Beispiel #22
0
    def printCobrar(self):
        printFinal = ''

        qsFinal = self.request.data.get('qsFinal')
        qsTotal = self.request.data.get('qsTotal')
        folio = self.request.data.get('folio')
        mesero = self.request.data.get('mesero')
        mesa = self.request.data.get('mesa')

        qsFinal.pop(0)
        for orden in qsFinal:
            for platillo in orden:
                _platillo = platillo.get('platillo')
                if 'B-' in _platillo:
                    _platillo = 'Bebida {0}'.format(
                        platillo.get('platillo').split('-')[1])
                elif 'Q-' in _platillo:
                    _platillo = 'Quesadilla {0}'.format(
                        platillo.get('platillo').split('-')[1])

                printFinal += '\n{0} {1} \n\t\t\t\t ${2}'.format(
                    platillo.get('cantidad'), _platillo,
                    platillo.get('precio'))

        print_final_caja = """
        \t FOLIO: {folio}
         MIXTAS EL COSTEÑO
         Mesero: {mesero}
         Mesa # {mesa}
        \r ----------------
        Ordenes:
        {printFinal}
        \t\t\t---- \t
            \t\t\t $ {total} \t

        \n\tDesarollado por TEAM-ANYOAN\n\t   [email protected]
        """.format(folio=folio,
                   mesero=mesero,
                   mesa=mesa,
                   printFinal=printFinal,
                   total=qsTotal)

        # Epson Bebidas y Caja
        printer = win32print.OpenPrinter('EPSON TM-T88V 1')
        jid = win32print.StartDocPrinter(printer, 1, ('TEST DOC', None, 'RAW'))
        bytes = win32print.WritePrinter(printer, print_final_caja)
        win32print.EndDocPrinter(printer)
        win32print.ClosePrinter(printer)

        # Cortar
        hDC = win32ui.CreateDC()
        hDC.CreatePrinterDC('EPSON TM-T88V 1')
        hDC.StartDoc("Test doc")
        hDC.StartPage()
        hDC.EndPage()
        hDC.EndDoc()
Beispiel #23
0
def winPrint(text, name):
    import win32print  #is this how I multiplatform?
    pname = win32print.GetDefaultPrinter()
    printer = win32print.OpenPrinter(pname)
    job = win32print.StartDocPrinter(printer, 1, (name, None, "RAW"))
    win32print.StartPagePrinter(printer)
    win32print.WritePrinter(printer, text)
    win32print.EndPagePrinter(printer)
    win32print.EndDocPrinter(printer)
    win32print.ClosePrinter(printer)
Beispiel #24
0
def main():
    printer_name = "Canon Inkjet iP1800 series" # or get_printer_names()[0]
    prn = win32print.OpenPrinter(printer_name)
    error = printer_errorneous_state(prn)
    if error:
        print("ERROR occurred: ", error)
    else:
        print("Printer OK...")
        #  Do the real work

    win32print.ClosePrinter(prn)
Beispiel #25
0
    def _printout(self, rawdata):
        if self.printerParam['connectionMethod'] == 'network':
            self.printer.sendall(rawdata)
            self._closeNetworkPrinter()

        if self.printerParam['connectionMethod'] == 'usb':
            hJob = win32print.StartDocPrinter(self.printer, 1,
                                              ("Test print", None, "RAW"))
            win32print.WritePrinter(self.printer, rawdata)
            win32print.EndPagePrinter(self.printer)
            win32print.ClosePrinter(self.printer)
def cancelPrint(printerName, docName):
    phandle = win32print.OpenPrinter(printerName)
    print_jobs = win32print.EnumJobs(phandle, 0, -1, 1)
    for job in print_jobs:
        if docName in job["pDocument"]:
            document = job["pDocument"]
            print("Canceling Print: " + document)
            win32print.SetJob(phandle, job["JobId"], 0, None,
                              win32print.JOB_CONTROL_DELETE)

    win32print.ClosePrinter(phandle)
    time.sleep(1)
Beispiel #27
0
 def sendjob(self, fp, title = "Raw Print Server Job"):
     hprinter = win32print.OpenPrinter(self.printer_name)
     hjob = win32print.StartDocPrinter(hprinter, 1, (title, None, "RAW"))
     try:
         blk = fp.read(8192)
         while blk:
             win32print.WritePrinter(hprinter, blk)
             blk = fp.read(8192)
     except:
         import traceback
         traceback.print_exc(file = sys.stdout)
     win32print.EndDocPrinter(hprinter)
     win32print.ClosePrinter(hprinter)
Beispiel #28
0
def printer_job(printer_name, printer_file):
    hPrinter = win32print.OpenPrinter(printer_name)
    try:
      hJob = win32print.StartDocPrinter(hPrinter, 1, ("test of raw data", None, "RAW"))
      try:
        win32print.StartPagePrinter(hPrinter)
        # win32print.WritePrinter (hPrinter, raw_data)
        win32print.WritePrinter(hPrinter, printer_file)
        win32print.EndPagePrinter(hPrinter)
      finally:
        win32print.EndDocPrinter(hPrinter)
    finally:
      win32print.ClosePrinter(hPrinter)
Beispiel #29
0
 def printRaw(self, printer, data, title):
     hPrinter = win32print.OpenPrinter(printer)
     try:
         win32print.StartDocPrinter(hPrinter, 1, (title, None, "RAW"))
         try:
             win32print.StartPagePrinter(hPrinter)
             win32print.WritePrinter(hPrinter, base64.b64decode(data))
             win32print.EndPagePrinter(hPrinter)
         finally:
             win32print.EndDocPrinter(hPrinter)
     finally:
         win32print.ClosePrinter(hPrinter)
     return 0
Beispiel #30
0
def set_duplex(printer_no, duplex):
    print_defaults = {"DesiredAccess": win32print.PRINTER_ALL_ACCESS}
    handle = win32print.OpenPrinter(app_config.PRINTER_NAMES[printer_no],
                                    print_defaults)
    level = 2
    attributes = win32print.GetPrinter(handle, level)
    attributes['pDevMode'].Duplex = duplex
    try:
        win32print.SetPrinter(handle, level, attributes, 0)
    except Exception as e:
        print('Failed to set duplex')
        print(e)
    finally:
        win32print.ClosePrinter(handle)