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

Reply via email to