1 #copyright ReportLab Inc. 2000 |
1 #copyright ReportLab Inc. 2000 |
2 #see license.txt for license details |
2 #see license.txt for license details |
3 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/platypus/doctemplate.py?cvsroot=reportlab |
3 #history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/platypus/doctemplate.py?cvsroot=reportlab |
4 #$Header: /tmp/reportlab/reportlab/platypus/doctemplate.py,v 1.43 2001/09/20 16:02:38 aaron_watters Exp $ |
4 #$Header: /tmp/reportlab/reportlab/platypus/doctemplate.py,v 1.44 2001/10/01 09:33:25 rgbecker Exp $ |
5 |
5 |
6 __version__=''' $Id: doctemplate.py,v 1.43 2001/09/20 16:02:38 aaron_watters Exp $ ''' |
6 __version__=''' $Id: doctemplate.py,v 1.44 2001/10/01 09:33:25 rgbecker Exp $ ''' |
7 |
7 |
8 __doc__=""" |
8 __doc__=""" |
9 This module contains the core structure of platypus. |
9 This module contains the core structure of platypus. |
10 |
10 |
11 Platypus constructs documents. Document styles are determined by DocumentTemplates. |
11 Platypus constructs documents. Document styles are determined by DocumentTemplates. |
143 a class based page routine. Called before any flowables for |
143 a class based page routine. Called before any flowables for |
144 this page are processed.""" |
144 this page are processed.""" |
145 pass |
145 pass |
146 |
146 |
147 def checkPageSize(self,canv,doc): |
147 def checkPageSize(self,canv,doc): |
148 '''This gets called by the template framework''' |
148 '''This gets called by the template framework |
149 #print "self.pagesize, canv._pagesize, doc.pagesize",(self.pagesize, canv._pagesize, doc.pagesize) |
149 If canv size != doc size then the canv size is set to |
150 ### NEVER EVER EVER COMPARE FLOATS FOR EQUALITY |
150 the template size or if that's not available to the |
|
151 doc size. |
|
152 ''' |
|
153 #### NEVER EVER EVER COMPARE FLOATS FOR EQUALITY |
|
154 #RGB converting pagesizes to ints means we are accurate to one point |
|
155 #RGB I suggest we should be aiming a little better |
151 cp = None |
156 cp = None |
152 dp = None |
157 dp = None |
153 sp = None |
158 sp = None |
154 if canv._pagesize: cp = map(int, canv._pagesize) |
159 if canv._pagesize: cp = map(int, canv._pagesize) |
155 if self.pagesize: sp = map(int, self.pagesize) |
160 if self.pagesize: sp = map(int, self.pagesize) |
156 if doc.pagesize: dp = map(int, doc.pagesize) |
161 if doc.pagesize: dp = map(int, doc.pagesize) |
157 if cp != dp: |
162 if cp != dp: |
158 if sp: |
163 if sp: |
159 canv.setPageSize(self.pagesize) |
164 canv.setPageSize(self.pagesize) |
160 elif cp != dp: |
165 else: |
161 canv.setPageSize(doc.pagesize) |
166 canv.setPageSize(doc.pagesize) |
162 |
167 |
163 def afterDrawPage(self, canv, doc): |
168 def afterDrawPage(self, canv, doc): |
164 """This is called after the last flowable for the page has |
169 """This is called after the last flowable for the page has |
165 been processed. You might use this if the page header or |
170 been processed. You might use this if the page header or |
625 footers, etcetera. They can use external variables to vary |
630 footers, etcetera. They can use external variables to vary |
626 the look (for example providing page numbering or section names). |
631 the look (for example providing page numbering or section names). |
627 """ |
632 """ |
628 self._calc() #in case we changed margins sizes etc |
633 self._calc() #in case we changed margins sizes etc |
629 frameT = Frame(self.leftMargin, self.bottomMargin, self.width, self.height, id='normal') |
634 frameT = Frame(self.leftMargin, self.bottomMargin, self.width, self.height, id='normal') |
630 self.addPageTemplates([PageTemplate(id='First',frames=frameT, onPage=onFirstPage), |
635 self.addPageTemplates([PageTemplate(id='First',frames=frameT, onPage=onFirstPage,pagesize=self.pagesize), |
631 PageTemplate(id='Later',frames=frameT, onPage=onLaterPages)]) |
636 PageTemplate(id='Later',frames=frameT, onPage=onLaterPages,pagesize=self.pagesize)]) |
632 if onFirstPage is _doNothing and hasattr(self,'onFirstPage'): |
637 if onFirstPage is _doNothing and hasattr(self,'onFirstPage'): |
633 self.pageTemplates[0].beforeDrawPage = self.onFirstPage |
638 self.pageTemplates[0].beforeDrawPage = self.onFirstPage |
634 if onLaterPages is _doNothing and hasattr(self,'onLaterPages'): |
639 if onLaterPages is _doNothing and hasattr(self,'onLaterPages'): |
635 self.pageTemplates[1].beforeDrawPage = self.onLaterPages |
640 self.pageTemplates[1].beforeDrawPage = self.onLaterPages |
636 BaseDocTemplate.build(self,flowables) |
641 BaseDocTemplate.build(self,flowables) |