def word2eps(iname, oname): pythoncom.CoInitialize() if not check_printer(): return False currentprinter = win32print.GetDefaultPrinter() win32print.SetDefaultPrinter(tempprinter) try: word = client.Dispatch("Word.Application") try: word.Documents.Open(os.path.abspath(iname)) time.sleep(1) word.ActiveDocument.PrintOut(False, False, 0, os.path.abspath(oname)) time.sleep(1) word.ActiveDocument.Close() except: word.Quit() win32print.SetDefaultPrinter(currentprinter) return False word.Quit() except: win32print.SetDefaultPrinter(currentprinter) return False win32print.SetDefaultPrinter(currentprinter) pythoncom.CoUninitialize() return True
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)
def sacar_impresion(request, ubig, zon, name, opc): lista = [] # lista.append("Ubigeo: "+str(ubigeo)+" Zona: " +str(zonaq) +" Seccion: "+ str(seccq)+" y AEU: "+str(aeut) +"<br/>") # cond = Esp_Aeus.objects.filter(ubigeo=ubigeo, zona=zonaq, aeu_final=aeut) print "Esta la impresora elegida de opcion: " + str(opc) tempprinter = " " if opc == 1: "Entro a la impresora blanca" tempprinter = "\\\\172.18.1.35\\192.168.230.16" else: print "Entro a la impresora negra" tempprinter = "\\\\172.18.1.35\\192.168.230.20" print tempprinter currentprinter = win32print.GetDefaultPrinter() # print "Aqui esta el nombre: " + str(ubig) + name source_file_name = "\\\srv-fileserver\\CPV2017\\segm_tab\\urbano\\" + str( ubig) + "\\" + str(zon) + "\\" + str(name) print source_file_name # \\\srv - fileserver\\CPV2017\\list_segm_esp\\" + str(ubigeo) + "\\" + zonal + "\\" + str(ubigeo) + zonal + str(secc) + str(aeu_conv) + ".pdf" win32print.SetDefaultPrinter(tempprinter) win32api.ShellExecute(0, "print", source_file_name, None, ".", 0) win32print.SetDefaultPrinter(currentprinter) return HttpResponse(lista)
def print(self): tempprinter = "\\\\server01\\printer01" currentprinter = win32print.GetDefaultPrinter() win32print.SetDefaultPrinter(tempprinter) win32api.ShellExecute(0, "print", filename, None, ".", 0) win32print.SetDefaultPrinter(currentprinter) pass
def imprimirLegajo(ubigeo): archivo = "\\\srv-fileserver\\CPV2017\\legajos\\{}\\{}.pdf".format( ubigeo, ubigeo) tempprinter = "\\\\172.18.1.35\\192.168.230.20" currentprinter = win32print.GetDefaultPrinter() win32print.SetDefaultPrinter(tempprinter) win32api.ShellExecute(0, "print", archivo, None, ".", 0) win32print.SetDefaultPrinter(currentprinter)
def printPdf(self, printer, data): defaultPrinter = win32print.GetDefaultPrinter() win32print.SetDefaultPrinter(printer) with tempfile.NamedTemporaryFile(suffix=".pdf", delete=False) as f: f.write(base64.b64decode(data)) f.flush() filename = os.path.basename(f.name) dirname = os.path.dirname(f.name) win32api.ShellExecute(0, "print", filename, None, dirname, 0) win32print.SetDefaultPrinter(defaultPrinter) return 0
def printWindows(pdf, impresora, delay = 5) : ImpresoraPorDefecto = str(win32print.GetDefaultPrinter()) # primero guardamos la impresora por defecto win32print.SetDefaultPrinter(impresora) # luego se cambia la impresora por defecto por la impresora específica try: win32api.ShellExecute(0, 'print', pdf, None, '.', 0) except pywintypes.error as e: print(e.strerror) return 1 sleep(delay) # se espera un tiempo para que se envíe el archivo a la impresora win32print.SetDefaultPrinter(ImpresoraPorDefecto) # vuelve a estar la impresora por defecto original return 0
def printWindows(pdf, impresora): ImpresoraPorDefecto = str(win32print.GetDefaultPrinter() ) # primero guardamos la impresora por defecto win32print.SetDefaultPrinter( impresora ) # luego se cambia la impresora por defecto por la impresora específica win32api.ShellExecute(0, "print", pdf, None, ".", 0) sleep(5) # se espera un tiempo para que se envíe el archivo a la impresora win32print.SetDefaultPrinter( ImpresoraPorDefecto ) # vuelve a estar la impresora por defecto original return 0
def wordPrinter(self, targetPrinter): try: document = client.Dispatch('Kwps.application') doc = document.Documents.Open(self.filePath) if not targetPrinter == self.defaultPrinter: win32print.SetDefaultPrinter(targetPrinter) doc.printOut() except: return 'failed' finally: doc.Close() document.Quit() if not targetPrinter == self.defaultPrinter: win32print.SetDefaultPrinter(self.defaultPrinter) return 'success'
def excelPrinter(self, targetPrinter): try: document = client.Dispatch('Ket.application') excel = document.Workbooks.Open(self.filePath) if targetPrinter != self.defaultPrinter: win32print.SetDefaultPrinter(targetPrinter) excel.printOut() except: return 'failed' finally: excel.Close() document.Quit() if not targetPrinter == self.defaultPrinter: win32print.SetDefaultPrinter(self.defaultPrinter) return 'success'
def print_report(): DIR_PATH = str( datetime.now().strftime("%B")) + f"_{datetime.now().year}/" SAVE_PATH = '//Zerozed-pc/shared/DB/Sales_Report/' + DIR_PATH get_date = cal.selection_get() EXCEL_FILE = SAVE_PATH + str(get_date) + '.xlsx' if os.path.exists(os.path.abspath(EXCEL_FILE)): printfile = os.path.abspath(EXCEL_FILE) try: try: with open('Config/printerConfig.ini', 'r') as f: check_print = [ i.strip("\n") for i in f.readlines() ] win32print.SetDefaultPrinter(str(check_print[3])) f.close() except Exception as e: messagebox.showerror( "Printer Error", f"Cant Print, Please contact service provider +60179593309\n{e}" ) os.startfile(rf"{printfile}", 'print') self.calendar_win.destroy() messagebox.showinfo( "Printing", f"Report on {get_date} Printed Successfully") except Exception as error: messagebox.showerror("Printer error", error) self.calendar_win.destroy() else: messagebox.showerror("Not Found", "Your Report NOT FOUND") self.calendar_win.focus_force()
def send_txt(file_path, printer_name): default_printer = win32print.GetDefaultPrinter() print("---current default printer-----", default_printer) win32print.SetDefaultPrinter(printer_name) handle = win32print.OpenPrinter( printer_name, {"DesiredAccess": win32print.PRINTER_ALL_ACCESS}) print("---changed default printer-----", win32print.GetDefaultPrinter()) dict = shell.ShellExecuteEx(fMask=256 + 64, lpVerb='print', lpFile=file_path, lpParameters=printer_name) wait = dict["hProcess"] win32event.WaitForSingleObject(wait, -1) win32print.ClosePrinter(handle) win32print.SetDefaultPrinter(default_printer) print("---current default printer-----", win32print.GetDefaultPrinter())
def __init__(self, printer_name): self.printer_name = printer_name # Set printer logger.info("正在设置默认打印机为: %s" % self.printer_name) win32print.SetDefaultPrinter(self.printer_name) self.printer = win32print.GetDefaultPrinter()
def StartPrint (printer='MyPSPrinter', path=r'D:\test.txt', copies = 1, orientation = win32con.DMORIENT_PORTRAIT, duplex = win32con.DMDUP_HORIZONTAL, printQuality = win32con.DMRES_HIGH, color = win32con.DMCOLOR_MONOCHROME, paperSize = win32con.DMPAPER_LETTER, # or DMPAPER_A4 text=None): PRINTER_DEFAULTS = {"DesiredAccess": win32print.PRINTER_ALL_ACCESS} h_printer = win32print.OpenPrinter(printer, PRINTER_DEFAULTS) properties = win32print.GetPrinter(h_printer, 2) devmode = properties["pDevMode"] devmode.FormName = 'A4' # or 'Letter' devmode.PaperSize = paperSize devmode.Orientation = orientation devmode.PrintQuality = printQuality devmode.Color = color devmode.TTOption = win32con.DMTT_SUBDEV devmode.Scale = 100 devmode.Copies = copies devmode.Duplex =duplex devmode.Fields |= (win32con.DM_FORMNAME | win32con.DM_PAPERSIZE | win32con.DM_ORIENTATION | win32con.DM_PRINTQUALITY | win32con.DM_COLOR | win32con.DM_TTOPTION | win32con.DM_SCALE) properties['pDevMode'] =devmode win32print.SetPrinter(h_printer, 2, properties, 0) win32print.SetDefaultPrinter(printer) try: listOfFiles = os.listdir(path) if (len(listOfFiles)!=0): for file in listOfFiles: filename = path+'\\'+file print(filename) print(win32api.ShellExecute( 0, "printto", filename, '"%s"' % win32print.GetDefaultPrinter(), ".", 0 )) print_jobs = win32print.EnumJobs(h_printer, 0, -1, 2) delete = True while (delete): old_print_jobs = print_jobs print_jobs = win32print.EnumJobs(h_printer, 0, -1, 2) if((len(print_jobs) == 0) & (len(old_print_jobs)!=0)): print('ok') delete = False filename = path+'\\'+file os.remove(filename) except FileNotFoundError: print('Directory not created.')
def printFile(self): """ This function will try to print the document. """ win32print.SetDefaultPrinter(self.cur_printer) myprinter = self.cur_printer file_name = self.file_name win32api.ShellExecute(0, "print", file_name, '"%s"' % myprinter, ".", 0) self.closeApp()
def EnviarImpresion(namepdf, impresoraselect): impresoras = [ x[2] for x in win32print.EnumPrinters(win32print.PRINTER_ENUM_CONNECTIONS) ] win32print.SetDefaultPrinter(impresoras[int(impresoraselect)]) os.startfile(namepdf, "print") return JsonResponse({'msg': True})
def printAttr(selPrt): #Save the current defauly Printer dfltPrt = win32print.GetDefaultPrinter() win32print.SetDefaultPrinter(selPrt) print('====>> My Current Printer: ', win32print.GetDefaultPrinter()) handle, level, prtProperties = prepPrinter(selPrt) showPtrAttr(prtProperties)
def ChangeDefaultPrinter(printer): #if type(printer) == types.StringType: try: win32print.SetDefaultPrinter(printer) print (' Default Printer set to: %s' % printer) except: print (' Specified printer %s not available' % printer) raise
def _print_report_from_template(self): if os.path.isfile(self.report_file): win32print.SetDefaultPrinter(self.default_printer) win32api.ShellExecute(0, "Print", self.report_file, None, ".", 0) else: raise Exception( "PUMA_ReportLibrary.print_report_from_template: The report file is not exist: \n %s" % (self.report_file))
def print(self): printer_name = self.printers.get() if printer_name == self.pdf_printer_name: PrintDialogue.print_to_pdf() else: if PrintDialogue.print_to_pdf(Constants.temp_pdf_file): win32print.SetDefaultPrinter(printer_name) os.startfile(Constants.temp_pdf_file, "print")
def closeApp(self): # Added a 1 second sleep time due to directly setting the default # printer back to default will cause the printer not print in the # previously selected printer. time.sleep(1) # Set back the default printer. win32print.SetDefaultPrinter(self.default_printer) # Close the grahical user interface. self.master.destroy()
def impresion_etiqueta_rural(request, ubigeo, pdf, impresora): if impresora == 1: # IMPRESORA BLANCA tempprinter = "\\\\172.18.1.35\\192.168.230.16" else: # IMPRESORA NEGRA tempprinter = "\\\\172.18.1.35\\192.168.230.20" currentprinter = win32print.GetDefaultPrinter() PathPDF = "\\\\192.168.201.115\\cpv2017\\etiquetas\\rural\\{}\\{}".format( ubigeo, pdf) win32print.SetDefaultPrinter(tempprinter) win32api.ShellExecute(0, "print", PathPDF, None, ".", 0) win32print.SetDefaultPrinter(currentprinter) return HttpResponse([])
def print_pedido(texto, comprovante): filename = comprovante + ".txt" with open(filename, "w", encoding="Utf-8") as f: f.write(texto) # win32print.SetDefaultPrinter('MP-4200 TH') # win32print.SetDefaultPrinter('MP-4000 TH') # win32print.SetDefaultPrinter('MP-4000 TH') win32print.SetDefaultPrinter('Microsoft Print to PDF') win32api.ShellExecute(0, "print", filename, '"%s"' % win32print.GetDefaultPrinter(), ".", 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) win32print.SetPrinter(handle, level, prtProperties, 0) 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)
def imprimirBono(self): #TERMINAR ESTO config = ConfigParser() if config.read('impresora.ini'): if 'IMPRESORA' in config.section(): impresora = config['IMPRESORA']['nombre_impresora'] printer = win32print.SetDefaultPrinter(impresora) else: print("No se ha configurado la impresora")
def sacar_impresion(request, ubigeo, zonaq, seccq, aeut): lista = [] lista.append( str(ubigeo) + ": " + str(zonaq) + ", " + str(seccq) + "," + str(aeut) + "<br/>") #cond = Esp_Aeus.objects.filter(ubigeo=ubigeo, zona=zonaq, aeu_final=aeut) tempprinter = "\\\\172.18.1.35\\192.168.230.16" currentprinter = win32print.GetDefaultPrinter() secc = str(seccq).zfill(3) aeu_conv = str(aeut).zfill(3) #surce_file_name = "C:/Users/acarrillo/Desktop/pap.pdf" print ubigeo print zonaq print seccq print aeu_conv source_file_name = "\\\srv-fileserver\\CPV2017\\list_segm_esp\\" + str( ubigeo) + "\\" + str(zonaq) + "\\" + str(ubigeo) + str(zonaq) + str( secc) + str(aeu_conv) + ".pdf" print source_file_name # \\\srv - fileserver\\CPV2017\\list_segm_esp\\" + str(ubigeo) + "\\" + zonal + "\\" + str(ubigeo) + zonal + str(secc) + str(aeu_conv) + ".pdf" win32print.SetDefaultPrinter(tempprinter) win32api.ShellExecute(0, "print", source_file_name, None, ".", 0) win32print.SetDefaultPrinter(currentprinter) return HttpResponse(lista) # # tempprinter = "\\\\server01\\printer01" # # tempprinter = "\\\\172.18.1.35\\192.168.230.68" # tempprinter = "\\\\172.18.1.35\\192.168.230.16" # currentprinter = win32print.GetDefaultPrinter() # source_file_name = "C:/Users/acarrillo/Desktop/pap.pdf" # win32print.SetDefaultPrinter(tempprinter) # win32api.ShellExecute(0, "print", source_file_name, None, ".", 0) # win32print.SetDefaultPrinter(currentprinter)
def impresion_rural(request, ubigeo, pdf, impresora): if impresora == 1: # IMPRESORA CARTO tempprinter = "\\\\172.18.1.35\\HPM880-CARTO" #tempprinter = "\\\\172.18.1.35\\192.168.230.16" else: # IMPRESORA UDRA tempprinter = "\\\\172.18.1.35\\HP9050-UDRA" #tempprinter = "\\\\172.18.1.35\\192.168.230.20" currentprinter = win32print.GetDefaultPrinter() PathPDF = "\\\\192.168.201.115\\cpv2017\\croquis-listado\\rural\\{}\\{}.pdf".format( ubigeo, pdf) win32print.SetDefaultPrinter(tempprinter) win32api.ShellExecute(0, "print", PathPDF, None, ".", 0) win32print.SetDefaultPrinter(currentprinter) return HttpResponse([])
def selectPrinter(): index = 0 Printers = win32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL, None, 2) print("[Print List]") print("Current Printer Name: " + win32print.GetDefaultPrinter()) print("0. Close") for Printer in Printers: index += 1 print(str(index) + ". " + Printer['pPrinterName']) number = input("Select Printer Number: ") if len(Printers) >= int(number) and int(number) > 0: win32print.SetDefaultPrinter(Printers[int(number) - 1]['pPrinterName']) print("Setting Printer: " + win32print.GetDefaultPrinter()) return win32print.GetDefaultPrinter()
def startPrinting(x): force_printer = chosenPrinter() if force_printer: try: if win32print.GetDefaultPrinter() != force_printer: win32print.SetDefaultPrinter(force_printer) except: print('Cannot set your printer "'+force_printer+'" as default. Please see list below and choose one.\n') viewAllPrinters() # exits after showing options for file in x: # Archive first so that file is not in use when archiving (just in case printer is still spooling) archive_file = os.path.join(archive_dir,getLogTime()+"_"+file) moveFile(os.path.join(pdf_dir,file),archive_file) # Send print using Windows default action win32api.ShellExecute(0,"print", archive_file, None, ".", 0) print('Processed '+archive_file) dropFromQueue(file)
def sacar_impresion(request, ubig, zon, name, opc): lista = [] if opc == 1: "Entro a la impresora blanca" tempprinter = "\\\\172.18.1.35\\192.168.230.16" else: print "Entro a la impresora negra" tempprinter = "\\\\172.18.1.35\\192.168.230.20" print tempprinter currentprinter = win32print.GetDefaultPrinter() source_file_name = "\\\srv-fileserver\\CPV2017\\segm_tab\\urbano\\" + str( ubig) + "\\" + str(zon) + "\\" + str(name) win32api.ShellExecute(0, "print", source_file_name, None, ".", 0) win32print.SetDefaultPrinter(currentprinter) return HttpResponse(lista)