I think this is dependent on the printer driver. Some use the paper size defined by the the form, and others use the PaperSize member.
Roger "Tefnet Developers" <develop...@tefnet.pl> wrote in message news:1298888553.2645.29.camel@cacko... > 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