Your mileage may vary, but while using setprinter.exe for a similar task (many
years ago) I found that the different trays can sometimes be large values like
260…
Your best bet might be to set the tray manually in the UI, and then try to look
at those values via something like setprinter.exe
The values from setprinter.exe show dmDefaultSource instead of DefaultSource,
but it’s all the same
If you need setprinter.exe it should be easily downloadable from sourceforge.
HTH
Steven
From: python-win32 On
Behalf Of Michael Litvin
Sent: Thursday, January 18, 2024 1:07 PM
To: python-win32@python.org
Subject: [python-win32] PyWin32 Advanced Options
Hello,
I am trying to print from python using the bypass tray on my printer, but I
cannot seem to get it working and it always prints from tray 1.
Here is my code:
image = Image.open(file_path)
printer_handle = win32print.OpenPrinter(printer_name)
p_info = win32print.GetPrinter(printer_handle, 2)
devmode = p_info["pDevMode"]
devmode.PaperWidth = 3550
devmode.PaperLength = 8510
devmode.DefaultSource = 4
# bins = win32print.DeviceCapabilities(printer_name, devmode.DeviceName,
win32con.DC_BINS)
# bin_names = win32print.DeviceCapabilities(printer_name,
devmode.DeviceName, win32con.DC_BINNAMES)
# for bin, bin_name in zip(bins, bin_names):
# print(f"Bin number: {bin}, Bin name: {bin_name}")
hDC = win32ui.CreateDC()
hDC.CreatePrinterDC(printer_name)
hDC.StartDoc(file_path)
hDC.StartPage()
dib = ImageWin.Dib(image)
dib.draw(hDC.GetHandleOutput(), (0, 0, image.size[0],image.size[1]))
hDC.EndPage()
hDC.EndDoc()
hDC.DeleteDC()
___
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32