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)
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 open(self, job_name="python-escpos"): if self.printer_name is None: raise Exception("Printer not found") self.hPrinter = win32print.OpenPrinter(self.printer_name) self.current_job = win32print.StartDocPrinter( self.hPrinter, 1, (job_name, None, "RAW")) win32print.StartPagePrinter(self.hPrinter)
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)
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!!!" })
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')
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)
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()
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:
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)
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)
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()
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)
def index(): printer_data = request.form['printer_data'] p = win32print.OpenPrinter(PRINTER_NAME) job = win32print.StartDocPrinter(p, 1, ("DOTMATRIX", None, "RAW")) win32print.StartPagePrinter(p) win32print.WritePrinter(p, printer_data.encode()) win32print.EndPagePrinter(p) out = {'status': 'OK'} return jsonify(out)
def open(self): p = win32print.OpenPrinter(self.transport.config.printer) self.job = win32print.StartDocPrinter(p, 1, ("Inkcut job", None, "RAW")) win32print.StartPagePrinter(p) self.printer = p #: Sync self.transport.connected = True self.transport.protocol.connection_made()
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 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
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)
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)
def _output_win(self, commands): if self.queue == 'zebra_python_unittest': return hPrinter = win32print.OpenPrinter(self.queue) try: hJob = win32print.StartDocPrinter(hPrinter, 1, ('Label', None, 'RAW')) try: win32print.StartPagePrinter(hPrinter) win32print.WritePrinter(hPrinter, commands) win32print.EndPagePrinter(hPrinter) finally: win32print.EndDocPrinter(hPrinter) finally: win32print.ClosePrinter(hPrinter)
def send_document(filename): # Try to get printer. If it fails, print out exact error. try: p = win32print.OpenPrinter(get_online_printer()) try: #open printer, print, close out printer win32print.StartDocPrinter(p, 1, ("Printer Test", None, "RAW")) win32print.StartPagePrinter(p) win32print.WritePrinter(p, filename) win32print.EndPagePrinter(p) except Exception as e: print("Print Error: ", e) win32print.ClosePrinter(p) except Exception as e: print("Could not find printer: ", e)
def Printer_Process(raw_data): printer_name = win32print.GetDefaultPrinter() try: raw_data = raw_data.encode('gb2312'); except: raw_data = raw_data; hPrinter = win32print.OpenPrinter(printer_name) try: hJob = win32print.StartDocPrinter(hPrinter, 1, ("Sell Receipt", None, "RAW")) try: win32print.StartPagePrinter(hPrinter) win32print.WritePrinter(hPrinter, raw_data) win32print.EndPagePrinter(hPrinter) finally: win32print.EndDocPrinter(hPrinter) finally: win32print.ClosePrinter(hPrinter)
def printContent(raw_data): try: printer_name = win32print.GetDefaultPrinter () 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.encode("gbk")) win32print.EndPagePrinter (hPrinter) finally: win32print.EndDocPrinter (hPrinter) finally: win32print.ClosePrinter (hPrinter) except Exception as e: logger.error("printContent error "+e) return True
def print_job(zpl): printer = win32print.OpenPrinter('ZDesigner GX420d') job = win32print.StartDocPrinter(printer, 1, ('test of raw data', None, "RAW")) print(zpl) # string= ''' # ^XA # ^FO0,24^A0N,120,96^FB720,1,0,C,0^FDStart^FS # ^FO0,180^BQN,2,10,Q,7^FS # ^XZ # ''' raw_data = bytes(zpl, 'utf-8') win32print.StartPagePrinter(printer) win32print.WritePrinter(printer, raw_data) win32print.EndPagePrinter(printer)
def print_receipt(transactionID, printer_name, jsonObject): basedir = jsonObject["RCPT_DIR"] if (printer_name == ""): printer_name = win32print.GetDefaultPrinter() if (os.name != "posix"): hPrinter = win32print.OpenPrinter(printer_name) f2 = open(os.path.join(basedir, transaction_number), "r") text_data = f2.read() f2.close() # Open a doc, open a page, wirte the page and close page and doc hJob = win32print.StartDocPrinter( hPrinter, 1, ("Startup Day Receipt", None, "TEXT")) win32print.StartPagePrinter(hPrinter) win32print.WritePrinter(hPrinter, text_data) win32print.EndPagePrinter(hPrinter) win32print.EndDocPrinter(hPrinter) win32print.ClosePrinter(hPrinter)
def ouvindoPrint(*args): vdic = args[0] vservico = (vdic['servico']['titulo']).encode('utf-8') vatendimento = vdic['atendimento'].encode('utf-8') vsequencia = vdic['sequence'].encode('utf-8') vtimestamp = vdic['timestamp'].encode('utf-8') print 'iniciando a impressao...' print vservico print 'Atendimento: ' + vatendimento print 'Sequencia: ' + vsequencia print 'Chegou as: ' + vtimestamp # Impressão prt = win32print.OpenPrinter(defprt) win32print.StartDocPrinter(prt, 1, (vsequencia, None, None)) try: win32print.WritePrinter( prt, '========================================' + "\r\n") win32print.WritePrinter(prt, ' Cartorio Moreira de Deus' + "\r\n") win32print.WritePrinter( prt, '========================================' + "\r\n") win32print.WritePrinter(prt, 'Servico: ' + "\r\n") win32print.WritePrinter(prt, vservico + "\r\n") win32print.WritePrinter( prt, '----------------------------------------' + "\r\n") win32print.WritePrinter(prt, 'Atendimento: ' + vatendimento + "\r\n") win32print.WritePrinter(prt, 'Sequencia: ' + vsequencia + "\r\n") win32print.WritePrinter(prt, 'Chegou as: ' + vtimestamp + "\r\n") win32print.WritePrinter( prt, '----------------------------------------' + "\r\n") win32print.WritePrinter( prt, 'A sequencia sera chamada 3 vezes, caso' + "\r\n") win32print.WritePrinter(prt, 'nao compareca ao balcão tera que' + "\r\n") win32print.WritePrinter(prt, 'solicitar outra sequencia.' + "\r\n") win32print.WritePrinter( prt, '========================================' + "\r\n\f") finally: win32print.EndDocPrinter(prt) win32print.ClosePrinter(prt)
def test_raw(printer='MyPSPrinter', filename=r'G:/test.txt', text=None): '''send plain text to a file''' if text is None: text_data = "This is a test. This is only a test." else: text_data = text job_info = ("Raw File Print", filename, 'RAW') h_printer = win32print.OpenPrinter(printer) try: h_job = win32print.StartDocPrinter(h_printer, 1, job_info) try: win32print.StartPagePrinter(h_printer) win32print.WritePrinter(h_printer, text_data.encode()) win32print.EndPagePrinter(h_printer) finally: win32print.EndDocPrinter(h_printer) finally: win32print.ClosePrinter(h_printer)
def SpoolPrint(NamePrint, StringBytes): # NamePrint -- Имя принтера # StringBytes -- Строка байтов # Можно открывать файл как показанно ниже # printer_name = win32print.GetDefaultPrinter () # Имя принтера по умолчанию в системе # open_file = open('epson_nozzle_check.spl', 'rb') # Открываем файл # raw_data = open_file.read() # Копируем данные в буфер # open_file.close() # Закрываем файл hPrinter = win32print.OpenPrinter (NamePrint) try: hJob = win32print.StartDocPrinter (hPrinter, 1, ("Print RAW Data", None, "RAW")) try: win32print.StartPagePrinter (hPrinter) win32print.WritePrinter (hPrinter, StringBytes) win32print.EndPagePrinter (hPrinter) finally: win32print.EndDocPrinter (hPrinter) finally: win32print.ClosePrinter (hPrinter)
def print_windows(details): try: import win32print printer = win32print.OpenPrinter(details['printer_name']) try: print_job = win32print.StartDocPrinter( printer, 1, (details['description'], None, "RAW")) try: win32print.StartPagePrinter(printer) win32print.WritePrinter(printer, details['print_code'].encode('utf-8')) win32print.EndPagePrinter(printer) r = requests.get( f'https://{HOST}/gateway/print_end' f'/{details["print_id"]}/{details["print_secret"]}') finally: win32print.EndDocPrinter(printer) finally: win32print.ClosePrinter(printer) except ImportError: pass
def on_bt_print_clicked(self): """ Slot documentation goes here. """ a = "^XA^FX #^CF0,60^FO20,30^FDMILKPLAN^FS^CF0,30^FO620,55^FDRnD_CODES^FS^FO20,85^GB750,1,3^FS^FX #" b = "^CFA,28^FO50,120^FD"+"AITHSH KOPHS:"+self.line_1.text()+"^FS" c ="^FO50,160^FD"+"ENTOLH: "+self.line_2.text()+"^FS" d = "^FO50,200^FD"+"TOMEAS: "+self.line_3.text()+"^FS" e = "^FO50,240^FD"+"DELIVERY DATE:"+self.line_5.text()+"^FS" e1 = "^FO50,280^FD"+"NAME:"+self.line_6.text()+"^FS" e2 = "^FO50,320^FD"+"DELIVERY PLACE:"+self.line_7.text()+"^FS" f = "^CFA,25^FO20,450^FDCOMMENTS:^FS^FX Fourth section (the two boxes on the bottom)." g = "^FO20,480^GB750,100,5^FS^CF0,40^FO50,510^FD"+self.data_paratirisis.text()+"^FS^XZ" message = a+b+c+d+e+e1+e2+f+g # hitzebra = win32print.OpenPrinter("\\\\Polyzoudis-pc\\Ετικέτες") # hitzebra = win32print.SetDefaultPrinter() hitzebra = win32print.OpenPrinter(self.name) filename = "2222.txt" s = bytes(message, "utf-16") print(type(s)) print(s) print(hitzebra) posot=int(self.data_posothta.text()) print(posot) try: hJob = win32print.StartDocPrinter(hitzebra, 1, ('PrintJobName', None, 'RAW')) try: # win32api.ShellExecute(0, "print", filename, None, ".", 0) for i in range(posot): win32print.StartPagePrinter(hitzebra) win32print.WritePrinter(hitzebra, s) # Instead of raw text is there a way to print PDF File ? win32print.EndPagePrinter(hitzebra) finally: win32print.EndDocPrinter(hitzebra) finally: # win32print.ClosePrinter("\\\\Polyzoudis-pc\\Ετικέτες") pass