Re: [python-win32] PyWin32 Advanced Options

2024-01-19 Thread Steven Manross
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


[python-win32] PyWin32 Advanced Options

2024-01-18 Thread Michael Litvin
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