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 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 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 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 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 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 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 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 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 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 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 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 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 printTab(self, printer): """ 打印标签 :param printer: 打印机名称 :return: None """ hPrinter = win32print.OpenPrinter(printer) command = self._getCommend() try: hJob = win32print.StartDocPrinter(hPrinter, 1, ('Label', None, 'raw')) try: win32print.StartPagePrinter(hPrinter) win32print.WritePrinter(hPrinter, command) win32print.EndPagePrinter(hPrinter) win32print.StartPagePrinter(hPrinter) win32print.WritePrinter(hPrinter, '^EG'.encode('utf-8')) win32print.EndPagePrinter(hPrinter) finally: win32print.EndDocPrinter(hPrinter) finally: 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_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 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 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 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 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 send(self, quantity=1): """ Replace label tags with values """ populated_label_zpl = self.replace_tags(self.__content, self.REPLACE_LIST) printed_quantity = 0 while printed_quantity < quantity: if self.interface == 'tcp': print('Sending label to : ' + str(self.ip_address) + ':' + str(self.port) + ' ...') with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.connect((self.ip_address, self.port)) s.send(populated_label_zpl.encode()) elif self.interface == 'usb': print("Sending label through USB") if sys.version_info >= (3, ): raw_data = bytes(populated_label_zpl, "utf-8") else: raw_data = populated_label_zpl hPrinter = win32print.OpenPrinter(self.name) try: hJob = win32print.StartDocPrinter( hPrinter, 1, ("Shard Label", None, "RAW")) try: win32print.StartPagePrinter(hPrinter) win32print.WritePrinter(hPrinter, raw_data) win32print.EndPagePrinter(hPrinter) finally: win32print.EndDocPrinter(hPrinter) finally: win32print.ClosePrinter(hPrinter) else: print("Interface not defined") printed_quantity = printed_quantity + 1 print('Sent')
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
def printCode(): c = generateCode() printer_name = win32print.GetDefaultPrinter() print(printer_name) hPrinter = win32print.OpenPrinter(printer_name) # print(hPrinter) if sys.version_info >= (3,): raw_data = bytes(c, "utf-8") # print('$$$$$$', c) else: raw_data = c # print('$$$$$$', c) try: hJob = win32print.StartDocPrinter(hPrinter, 1, (c, None, "RAW")) # print('$$$$$$', c) try: win32print.StartPagePrinter(hPrinter) win32print.WritePrinter(hPrinter, raw_data) win32print.EndPagePrinter(hPrinter) finally: win32print.EndDocPrinter(hPrinter) finally: win32print.ClosePrinter(hPrinter)
def printlabelonwindows(printer, labelmodelfile, charSep, parameters): contenu = "" with open(labelmodelfile) as fichierEtiq: for line in fichierEtiq: contenu += line + "\r\n" for paramName, value in parameters: if contenu.find(charSep + paramName.lower() + charSep) != -1: if (value is not None): contenu = contenu.replace( charSep + paramName.lower() + charSep, str(value).replace("é", "\\82").replace("à", "\\85").replace( "î", "\\8C")) else: contenu = contenu.replace( charSep + paramName.lower() + charSep, "") #print(sys.version_info) if sys.version_info >= (3, ): raw_data = bytes(contenu, "utf-8") else: raw_data = contenu hPrinter = win32print.OpenPrinter(printer) try: hJob = win32print.StartDocPrinter(hPrinter, 1, ("print", None, "RAW")) try: win32print.StartPagePrinter(hPrinter) win32print.WritePrinter(hPrinter, raw_data) win32print.EndPagePrinter(hPrinter) finally: win32print.EndDocPrinter(hPrinter) finally: win32print.ClosePrinter(hPrinter)
#!/usr/bin/python # -*- coding: utf-8 -*- # from: http://timgolden.me.uk/python/win32_how_do_i/print.html import os, sys import win32print printer_name = win32print.GetDefaultPrinter () print(printer_name) # # raw_data could equally be raw PCL/PS read from # some print-to-file operation # if sys.version_info >= (3,): raw_data = bytes ("This is a test", "utf-8") else: raw_data = "This is a test" hPrinter = win32print.OpenPrinter (printer_name) try: hJob = win32print.StartDocPrinter (hPrinter, 1, ("2test of raw data to office", None, "RAW")) try: win32print.StartPagePrinter (hPrinter) win32print.WritePrinter (hPrinter, raw_data) win32print.EndPagePrinter (hPrinter) finally: win32print.EndDocPrinter (hPrinter) finally: win32print.ClosePrinter (hPrinter)
def Print_Querysell(self, evt): dbreader = shelve.open('config.dat', 'r') self.Name_Print = dbreader["config"]["Name"] self.Address_Print = dbreader["config"]["Address"] self.Tel_Print = dbreader["config"]["Tel"] self.Comments_Print = dbreader["config"]["Comments"] # self.Welcome_Print=dbreader["config"]["Welcome"] self.Addr_Print = dbreader["config"]["Addr"] self.TelPhone_Print = dbreader["config"]["TelPhone"] dbreader.close() dbreader2 = shelve.open("PrintList.dat", 'r') printer_name = win32print.GetDefaultPrinter() hPrinter = win32print.OpenPrinter(printer_name) try: hJob = win32print.StartDocPrinter(hPrinter, 1, ("Sell Receipt", None, "RAW")) if (dbreader2 != {}): try: win32print.StartPagePrinter(hPrinter) win32print.WritePrinter(hPrinter, self.FormatContent(u"\n欢迎光临\n")) win32print.WritePrinter( hPrinter, self.FormatContent(self.Name_Print)) win32print.WritePrinter(hPrinter, self.FormatContent("\n\n")) win32print.WritePrinter(hPrinter, self.FormatContent(u"时 间:")) win32print.WritePrinter( hPrinter, self.FormatContent("%s" % SearchGoods.GetDetailTime())) win32print.WritePrinter(hPrinter, self.FormatContent("\n")) win32print.WritePrinter( hPrinter, self.FormatContent("*******************************")) win32print.WritePrinter(hPrinter, self.FormatContent("\n")) win32print.WritePrinter( hPrinter, self.FormatContent(u"商品名称 数量 单价\n")) for item in dbreader2.items(): win32print.WritePrinter( hPrinter, self.FormatContent(item[1]['Name'])) win32print.WritePrinter( hPrinter, self.FormatContent(" ")) win32print.WritePrinter( hPrinter, self.FormatContent(item[1]['amount'])) win32print.WritePrinter(hPrinter, self.FormatContent(" ")) win32print.WritePrinter( hPrinter, self.FormatContent(item[1]["Perprice"])) win32print.WritePrinter(hPrinter, self.FormatContent("\n")) win32print.WritePrinter(hPrinter, self.FormatContent("\n")) win32print.WritePrinter( hPrinter, self.FormatContent("*******************************")) win32print.WritePrinter(hPrinter, self.FormatContent("\n")) win32print.WritePrinter(hPrinter, self.FormatContent(u"总 金 额(¥): ")) win32print.WritePrinter( hPrinter, self.FormatContent(self.ReturnPrices()[0])) win32print.WritePrinter(hPrinter, self.FormatContent("\n")) win32print.WritePrinter(hPrinter, self.FormatContent(u"优 惠(¥): ")) win32print.WritePrinter(hPrinter, self.FormatContent("-")) win32print.WritePrinter( hPrinter, self.FormatContent(self.ReturnPrices()[1])) win32print.WritePrinter(hPrinter, self.FormatContent("\n")) win32print.WritePrinter(hPrinter, self.FormatContent(u"最终金额(¥): ")) win32print.WritePrinter( hPrinter, self.FormatContent(self.ReturnPrices()[2])) win32print.WritePrinter(hPrinter, self.FormatContent("\n\n")) win32print.WritePrinter( hPrinter, self.FormatContent("*******************************")) win32print.WritePrinter(hPrinter, self.FormatContent("\n")) win32print.WritePrinter(hPrinter, self.FormatContent(u"电 话:")) win32print.WritePrinter(hPrinter, self.FormatContent(self.Tel_Print)) win32print.WritePrinter(hPrinter, self.FormatContent("\n")) win32print.WritePrinter(hPrinter, self.FormatContent(u"地 址:")) win32print.WritePrinter( hPrinter, self.FormatContent(self.Address_Print)) win32print.WritePrinter(hPrinter, self.FormatContent("\n")) win32print.WritePrinter( hPrinter, self.FormatContent(self.Comments_Print)) win32print.WritePrinter(hPrinter, self.FormatContent("\n")) win32print.WritePrinter( hPrinter, self.FormatContent(u"\n谢谢惠顾 欢迎下次光临!\n")) win32print.WritePrinter(hPrinter, self.FormatContent("\n\n")) win32print.EndPagePrinter(hPrinter) #删除整个数据字典 dbwriter = shelve.open('PrintList.dat', 'w', writeback=True) dbwriter.clear() dbwriter.close() #重置界面元素项 self.Print_Teardown() SearchGoods.ReminderMessageBox(u"打印成功!") except: SearchGoods.ReminderMessageBox(u"打印失败!") finally: win32print.EndDocPrinter(hPrinter) else: SearchGoods.ReminderMessageBox(u"打印失败!") except: SearchGoods.ReminderMessageBox( u"获取打印机信息失败,请确保打印机正常连接,正常工作\n可参考本软件菜单帮助->打印机设置") finally: dbreader2.close() win32print.ClosePrinter(hPrinter)