Как я могу перенаправить вывод скрипта Python в временный файл, но временный файл не должен открываться в фоновом режиме - PullRequest
0 голосов
/ 01 июля 2019

Я создал форму в Python, которая сохраняет выходные данные во временном файле. Все работает нормально, но я хочу, чтобы временный файл не открывался в фоновом режиме; только данные должны копироваться, отображаться и отправляться на принтер.

#==============Importing modules=============
import tempfile
import os
from tkinter import*
import tkinter.messagebox

root=Tk()
root.geometry("810x630+0+0")
root.title("Print System for Expert Travels & Tours")
root.configure(background='Cadet Blue')


MenuFrame=Frame(root,bg='Cadet Blue',bd=10,relief=RIDGE)
MenuFrame.pack()

FraTitle=Frame(MenuFrame,bg="Powder blue",bd=10,relief=RIDGE)
FraTitle.pack(side=TOP)

ReceiptCal_F=Frame(MenuFrame,bg="powder blue",bd=10,relief=RIDGE)
ReceiptCal_F.pack(side=TOP)

Butttons_F=Frame(root,bg="cadet Blue",bd=10,relief=RIDGE)
Butttons_F.pack(side=BOTTOM)


def iExit():
    iExit=tkinter.messagebox.askyesno("Quit System","Do you want to quit?")
    if iExit>0:
       root.destroy()
    return

def Reset():

     Passengername_entry.delete(0,END)
     Address_entry.delete(0,END) 
     PhoneNo_entry.delete(0,END)

def iPrint():
        Passengername_info=Passengername.get()
        Address_info=Address.get()
        PhoneNo_info=PhoneNo.get()
        PhoneNo_info=str(PhoneNo_info)
        print(Passengername_info,Address_info,PhoneNo_info)

        filename=tempfile.mktemp(".txt")
        file=open(filename,"w")
        file.write("{:^20s}".format(Passengername_info))
        file.write("{:^20s}".format(Address_info))
        file.write("{:^20s}".format(PhoneNo_info))
        file.close()

        os.startfile(filename,"Print")


        Passengername_entry.delete(0,END)
        Address_entry.delete(0,END)
        PhoneNo_entry.delete(0,END)

Passengername_text=Label(text="Passenger Name * ",)
Address_text=Label(text="Address * ",)
PhoneNo_text=Label(text="Phone No. * ",)
Passengername_text.place(x=45,y=100)
Address_text.place(x=45,y=180)
PhoneNo_text.place(x=45,y=250)

Passengername=StringVar()
Address=StringVar()
PhoneNo=IntVar()

Passengername_entry=Entry(textvariable=Passengername,width="30")
Address_entry=Entry(textvariable=Address,width="30")
PhoneNo_entry=Entry(textvariable=PhoneNo,width="30")

Passengername_entry.place(x=45,y=120)
Address_entry.place(x=45,y=220)
PhoneNo_entry.place(x=45,y=280)


lblTitle=Label(FraTitle,width=40,bg="white",fg="Black",bd=4,font=('arial',24,'bold'),text="Receipt Printer")
lblTitle.grid(row=0,column=0)

txtReceipt=Text(ReceiptCal_F,width=84,height=24,bg="white",bd=4,font=('arial',12,'bold'))
txtReceipt.grid(row=1,column=0)

btn1=Button(Butttons_F,font=("arial",16,"bold"),width=19,text="Print",command=iPrint)
btn1.grid(row=1,column=0)

btn2=Button(Butttons_F,font=("arial",16,"bold"),width=19,text="Reset",command=Reset)
btn2.grid(row=1,column=1)

btn3=Button(Butttons_F,font=("arial",16,"bold"),width=19,text="Exit",command=iExit)
btn3.grid(row=1,column=2)

root.mainloop()

Я пробовал оба способа, один из которых создает временный файл или создает файл user.txt, но оба пути перед печатью открываются в фоновом режиме, чего я не хочу. Я простохотите взять вывод с рамки принтера и перенаправить вывод, на котором распечатаны данные пассажира.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...