Anders Quist wrote:
>I have an application that wants to print a large set of documents.
> Therefore, I want to have word display its print dialog so the user
> can supply printer settings once, that I can read and store for use
> with all following prints.
>
> At first glance, this would seem straight-forward; VBA like so:
>
> Dim dlgPrint As Dialog
> Set dlgPrint = Dialogs(wdDialogFilePrint)
> dlgPrint.Display
> MsgBox "printer = " & dlgPrint.Printer
>
> However, when tried in python, the property Printer does not seem to
> be available. A little trial-and-error indicates that no such
> properties are available from Word builtin dialogs:
>
> >>> import win32com.client
> >>> x = win32com.client.Dispatch("Word.Application")
> >>> p = x.Dialogs(win32com.client.constants.wdDialogFilePrint)
> >>> p.Display()
> <dialogs displayed>
> >>> p.Printer
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> File
> "c:\python\env\env11\lib\site-packages\win32com\client\__init__.py", line
> 451, in __getattr__
> raise AttributeError, "'%s' object has no attribute '%s'" %
> (repr(self), attr)
> AttributeError: '<win32com.gen_py.Microsoft Word 10.0 Object
> Library.Dialog instance at 0x21494960>' object has no attribute 'Printer'
>
> What am I doing wrong?
> --
> Anders Qvist, AB Strakt
>
Using early binding (makepy), the Printer property isn't available since
it's not
defined in the typelib. You can force a dynamic dispatch,
though:
>>> dynamic_p=win32com.client.dynamic.DumbDispatch(p)
>>> dynamic_p.Printer
u'Lexmark 710 Series'
hth
Roger
_______________________________________________
Python-win32 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-win32