Hi,

I am adding some printers connection as a user with
win32print.AddPrinterConnection().

Afterwards I want to set paper size to A4 (I have no idea why Polish
Windows XP sets it to Letter by default) with this example code:

==================================================================
import win32print
import win32con
import win32gui
import pywintypes

printer = r'\\drukarki\kp01'

handle = win32print.OpenPrinter(printer, {'DesiredAccess':
win32print.PRINTER_ACCESS_USE})

devmodeSize=win32print.DocumentProperties(0, handle, printer, None,
None, 0)
devmode = pywintypes.DEVMODEType(devmodeSize -
pywintypes.DEVMODEType().Size)
win32print.DocumentProperties(0, handle, printer, devmode, devmode,
win32con.DM_IN_BUFFER | win32con.DM_OUT_BUFFER)

print 'FormName before: %s' % devmode.FormName
print 'PaperSize before: %s' % devmode.PaperSize

devmode.FormName = "A4"
devmode.PaperSize = win32con.DMPAPER_A4
devmode.Fields = devmode.Fields | win32con.DM_FORMNAME |
win32con.DM_PAPERSIZE

print 'FormName set: %s' % devmode.FormName
print 'PaperSize set: %s' % devmode.PaperSize

info = win32print.GetPrinter(handle, 9)
info["pDevMode"] = devmode
win32print.SetPrinter(handle, 9, info, 0)

devmodeSize=win32print.DocumentProperties(0, handle, printer, None,
None, 0)
devmode = pywintypes.DEVMODEType(devmodeSize -
pywintypes.DEVMODEType().Size)
win32print.DocumentProperties(0, handle, printer, devmode, devmode,
win32con.DM_IN_BUFFER | win32con.DM_OUT_BUFFER)

print 'FormName after: %s' % devmode.FormName
print 'PaperSize after: %s' % devmode.PaperSize

win32print.ClosePrinter(handle)

win32gui.SendMessageTimeout(win32con.HWND_BROADCAST,
win32con.WM_DEVMODECHANGE, 0, 0, 0, 2000)
==================================================================

The output looks like this:
==================================================================
FormName before: A4
PaperSize before: 1
FormName set: A4
PaperSize set: 9
FormName after: A4
PaperSize after: 1
==================================================================

So, as you can see - FormName changes, but PaperSize does not.
Am I doing something wrong here? I've spent a lot of time trying to
solve it, yet came up with nothing.

Do you have any suggestions?

Thanks,
Filip Zyzniewski
Tefnet

_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to