[reportlab-users] Example, please: putting TOC at the beginning
   
    Bill Bell
     
    reportlab-users@reportlab.com
       
    Mon, 10 Jun 2002 11:20:16 -0400
    
    
  
My code is very simple, and appears below. Would someone please tell me how=
 to move the table of contents to the beginning of the document from the=
 end.
Thanks!
Bill
------------------------
class SimpleDocTemplateDer ( SimpleDocTemplate ):
    def multiBuild(self,flowables,onFirstPage=3D_doNothing,=
 onLaterPages=3D_doNothing):
        self._calc()    #in case we changed margins sizes etc
        frameT =3D Frame(self.leftMargin, self.bottomMargin, self.width,=
 self.height, id=3D'normal')
        self.addPageTemplates([PageTemplate(id=3D'First',frames=3DframeT,=
 onPage=3DonFirstPage,pagesize=3Dself.pagesize),
                        PageTemplate(id=3D'Later',frames=3DframeT,=
 onPage=3DonLaterPages,pagesize=3Dself.pagesize)])
        if onFirstPage is _doNothing and hasattr(self,'onFirstPage'):
            self.pageTemplates[0].beforeDrawPage =3D self.onFirstPage
        if onLaterPages is _doNothing and hasattr(self,'onLaterPages'):
            self.pageTemplates[1].beforeDrawPage =3D self.onLaterPages
        BaseDocTemplate.multiBuild(self,flowables)
    def afterFlowable ( self, flowable ):
        if hasattr(flowable, 'style'):
            if flowable . style . name =3D=3D 'Section':
                pageTabs [ self . page ] =3D flowable . getPlainText ( )
                self . notify ( 'TOCEntry', ( 0, flowable . getPlainText (=
 ), self . page ) )
def go():
    toc =3D TableOfContents ( )
    Elements . append ( toc )
    doc =3D SimpleDocTemplateDer ( 'PDFcomplete.pdf',
        leftMargin =3D 0.5 * inch, rightMargin =3D 0.5 * inch, topMargin=
 =3D 1 * inch, bottomMargin =3D 0.75 * inch )
    doc . multiBuild ( Elements, onFirstPage =3D newPage, onLaterPages =3D=
 newPage )
------------
"It is the time that you have wasted for your rose that makes your rose so=
 important."--St-Exupery