pyRTF and Footers

E.Doxtator at gmail.com E.Doxtator at gmail.com
Wed Nov 15 18:08:10 EST 2006


Hi All

I've been using the pyRTF module to generate some documents that I need
for work.  In general, the module is good, and pretty simple to use.
However, I am running into a problem with footers that doesn't quite
make sense to me.

My question is this:  Is it possible to change the text of a footer
throughout an RTF document?

The data that I am using to produce my document is organized in a
simple header/detail relationship.  The document I want to produce
looks roughly like this:

---------------------------
USER001

detail data line 1
detail data line 2
detail data line 3

page footer that says "USER001, plus some other information"

**page break**

USER002

detail data line 1
detail data line 2
detail data line 3

page footer that says "USER002, plus some other information"

**page break**

USERnnn

detail data line 1
detail data line 2
detail data line 3

page footer that says "USERnnn, plus some other information"

END OF DOCUMENT

---------------------------

I've gotten everything the way I want, except for the footer.  The
footer appears on the first page, but not on any other page.

The code that generates the footer is (apologies in advance for poor
style):

---------------------------

def MakeFooter(self, facilitatir, startDate, endDate, tuID):
   section = Section()

   self.doc.Sections.append( section )

   p = Paragraph(  "%s - %s (%s - %s)" % ( facilitator, tuID,
startDate, endDate ), LINE )
   p.append( 'Page', PAGE_NUMBER, ' of ', TOTAL_PAGES )
   section.Footer.append( p )

---------------------------

The logic that calls MakeFooter is:

---------------------------

   tuDoc = MakeTUDoc()
   DR = Renderer()

   for i in range( start, end + 1 ):
      key = "Traininguser%03d" % ( i )
      tuDoc.MakeFooter( facilitator, startDate, endDate, key )
      tuDoc.MakeHeader( key, module )
      < code to populate the document with detail data >

   DR.Write( tuDoc.doc, tuDoc.OpenFile( 'JUNK' ) )

   print( 'DONE!' )

---------------------------

(Note:  the MakeHeader() method doesn't put an actual RTF header in the
document-- it just puts text in a Heading1 format into a section at the
top of the page, before the detail data.)

I had a look at the RTF 1.5 specification
(http://www.biblioscope.com/rtf15_spec.htm), and regarding headers and
footers and it's pretty thin.  I didn't see anything in the
specification regarding support for changing footer text throughout the
document.  Nothing in there that said I could do it, either.

Any ideas, anyone?

Thanks in advance.  This is an extremely helpful discussion group.

-Doc




More information about the Python-list mailing list