[python-win32] Pythonwin - Word automation - Removing watermark not working

Gregory Piñero gregpinero at gmail.com
Sun Nov 6 04:32:27 CET 2005


Thanks, John. I'll try your ideas on Tuesday and see what happens. They
sound promising. If I'm still having problems I'll try sending a sample word
file like you said.

-Greg


On 11/5/05, John Machin <sjmachin at lexicon.net> wrote:
>
> Gregory Piñero wrote:
> > See below:
> >
> > On 11/5/05, *John Machin* <sjmachin at lexicon.net
> > <mailto:sjmachin at lexicon.net>> wrote:
> >
> > Gregory Piñero wrote:
> >
> > >
> > > Would anyone happen to know why this my function removewatermark() in
> > > this code isn't working? I copied it from a Word macro I
> > recorded and
> > > it did work when I recorded the macro. When I run it the watermark
> > > doesn't go away.
> > >
> > > I've also attached the code in case the formatting gets messed up
> > from
> > > the email.
> > >
> > >
> > > <code>
> > > import sys
> > > import os
> > > from win32com.client import gencache, constants
> >
> > Idle curiosity: why import constants but not use it?
> >
> >
> > It was giving me errors when I tried to use the constants so I stopped
> > using them. A future question perhaps...
> >
> > > WORD='Word.Application'
> > > False,True=0,-1
> > >
> > > class Word:
> > > def __init__(self):
> > > self.app=gencache.EnsureDispatch(WORD)
> > > self.app.Visible = 1
> > > self.app.DisplayAlerts = 0
> >
> > What does this do? Suppress any warnings?
> >
> >
> > That is correct.
>
> Try unsuppressing warnings. You may learn something.
>
>
> >
> >
> > > def open(self,doc):
> > > self.app.Documents.Open(FileName=doc)
> > > def removewatermark(self):
> > > self.app.ActiveDocument.Sections(1).Range.Select()
> > > self.app.ActiveWindow.ActivePane.View.SeekView = 9 #
> > > wdSeekCurrentPageHeader
> >
> > ... the cause of the "idle curiosity" question.
> >
> >
> > This doesn't bother me much to write out numbers.
>
> It mightn't bother you. Seeing hard-coded magic numbers bothers the
> bejasus out of many people.
>
> >
> > >
> > >
> > self.app.Selection.HeaderFooter.Shapes
> ("PowerPlusWaterMarkObject1").Select()
> >
> >
> > Have you tried inspecting self.app.Selection before and after the
> > attempt to .Delete() it?
> >
> >
> > What do you mean by inspect?
>
> It is an object. It must have some properties that you can retrieve and
> display so that you have some reassurance that you've actually got the
> object you think you've got.
>
>
>
> >
> > > self.app.Selection.Delete()
>
> What happens if you try foo.Delete() and foo is
> frozen/write-protected/whatever?
>
>
> > > self.app.ActiveWindow.ActivePane.View.SeekView = 0
> > > #wdSeekMainDocument
> > > </code>
> > >
> >
> > How do you know it didn't work?
> >
> >
> > Well I run my code, word opens the file, other changes happen, but the
> > watermark doesn't dissapear.
> >
> > Your class and its methods don't have any problems that I can see --
> > but it's early here and I'm not quite awake. Is it possible for you to
> > show us the few lines of code that you actually used to test this? You
> > know, something like:
> >
> > wc = Word()
> > wc.open("myfile.doc")
> > wc.removewatermark()
> > # then what?
> >
> >
> > Something like this:
> >
> > word=Word()
> > word.open("myfile.doc")
> > word.replace("[Sender]","Bill Brown") #replace a word
> > word.removewatermark()
> > word.printdoc(numcopies=3) #prints, works fine
> > word.close() #closes doc
> > word.quit() #shuts down word
> >
> > I only included the relevant parts of this class. So you see some
> > methods above that aren't in my class. I guess I should have included
> > the whole class, sorry. Now I can't get back to that code until Tuesday
> :-(
> > But all of the methods work fine except for removewatermark.
> >
>
> We're not interested in the parts of your class that are irrelevant to
> the problem. If by Tuesday, no-one has been able to help you by
> inspecting the code that you have shown so far, considering doing this:
>
> 1. Make up a *small* .doc file with your watermark in it. Make it from
> scratch i.e. don't copy an existing file and delete your proprietary
> info -- it may not actually be deleted.
> 2. Assemble the *minimal* Python script that demonstrates the problem.
> 3. Send it to this mailing list. Include in your message which version
> of (a) Python (2) win32com (3) MS Word (4) MS Windows you are using.
>
> HTH,
> John
>



--
Gregory Piñero
Chief Innovation Officer
Blended Technologies
(www.blendedtechnologies.com <http://www.blendedtechnologies.com>)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/python-win32/attachments/20051105/3a649e89/attachment.html


More information about the Python-win32 mailing list