When I change default printer and then use;
win32api.shellexecute(0,'print',filename,None,'.',0)
all print jobs are still being sent to the first default printer set first in python
def printfile(filename):
while True:
printername=input("printername:")
import win32print,time,win32api
try:
global defaultPrinter
defaultPrinter=None
defaultPrinter = win32print.GetDefaultPrinter()
if defaultPrinter != printername:
time.sleep(0.5)
win32print.SetDefaultPrinter(printername)
time.sleep(0.5)
win32api.ShellExecute (
0,
"print",
filename,
None, ".", 0)
time.sleep(3)
win32print.SetDefaultPrinter(defaultPrinter)
except Exception as err:
print(err)
printfile('Black.pdf')
I tried to change the default printer through my program but all print jobs will send to the first default printer set at the beginning of my program running.