diff options
Diffstat (limited to 'testsuites/vstf/vstf_scripts/vstf/controller/reporters/report/pdf/pdftemplate.py')
-rw-r--r-- | testsuites/vstf/vstf_scripts/vstf/controller/reporters/report/pdf/pdftemplate.py | 88 |
1 files changed, 61 insertions, 27 deletions
diff --git a/testsuites/vstf/vstf_scripts/vstf/controller/reporters/report/pdf/pdftemplate.py b/testsuites/vstf/vstf_scripts/vstf/controller/reporters/report/pdf/pdftemplate.py index 69c65401..7e287814 100644 --- a/testsuites/vstf/vstf_scripts/vstf/controller/reporters/report/pdf/pdftemplate.py +++ b/testsuites/vstf/vstf_scripts/vstf/controller/reporters/report/pdf/pdftemplate.py @@ -13,9 +13,11 @@ from reportlab.platypus.doctemplate import SimpleDocTemplate from reportlab.platypus import PageBreak from vstf.controller.reporters.report.pdf.styles import TemplateStyle, ps_head_lv1, ps_head_lv2, ps_head_lv3 import vstf.common.constants as cst +from functools import reduce class BaseDocTemplate(SimpleDocTemplate): + def __init__(self, filename, **kw): self.allowSplitting = 0 SimpleDocTemplate.__init__(self, filename, **kw) @@ -34,6 +36,7 @@ class BaseDocTemplate(SimpleDocTemplate): class PdfTemplate(object): + def __init__(self, title, logo, header, footer, note=[], style="default"): self._style = TemplateStyle(name=style) self._title = title @@ -41,7 +44,8 @@ class PdfTemplate(object): #self._header = header[0] self._footer = footer self._note = note - info = " Generated on %s " % time.strftime(cst.TIME_FORMAT2, time.localtime()) + info = " Generated on %s " % time.strftime( + cst.TIME_FORMAT2, time.localtime()) self._note += [info] def myFirstPage(self, canvas, doc): @@ -54,46 +58,78 @@ class PdfTemplate(object): sizes = (self._style.page_wight, self._style.page_height) doc = BaseDocTemplate(output, pagesize=sizes) # doc.build(story, onFirstPage=self.myFirstPage, onLaterPages=self.myLaterPages) - doc.multiBuild(story, onFirstPage=self.myFirstPage, onLaterPages=self.myLaterPages) + doc.multiBuild( + story, + onFirstPage=self.myFirstPage, + onLaterPages=self.myLaterPages) class PdfVswitch(PdfTemplate): + def myFirstPage(self, canvas, doc): canvas.saveState() title_lines = len(self._title) line_size = [self._style.title_size] * title_lines line_size.append(0) - canvas.drawImage(self._logo, - (self._style.page_wight - self._style.logo_width) / 2.0, - self._style.page_height / 2.0 + (1 + self._style.title_leading) * reduce(lambda x, y: x + y, - line_size), - self._style.logo_width, - self._style.logo_height - ) + canvas.drawImage( + self._logo, + (self._style.page_wight - + self._style.logo_width) / + 2.0, + self._style.page_height / + 2.0 + + ( + 1 + + self._style.title_leading) * + reduce( + lambda x, + y: x + + y, + line_size), + self._style.logo_width, + self._style.logo_height) for i in range(title_lines): canvas.setFont(self._style.title_font, line_size[i]) - canvas.drawCentredString(self._style.page_wight / 2.0, - self._style.page_height / 2.0 + (1 + self._style.title_leading) * reduce( - lambda x, y: x + y, line_size[i + 1:]), - self._title[i] - ) + canvas.drawCentredString( + self._style.page_wight / + 2.0, + self._style.page_height / + 2.0 + + ( + 1 + + self._style.title_leading) * + reduce( + lambda x, + y: x + + y, + line_size[ + i + + 1:]), + self._title[i]) size = self._style.body_size canvas.setFont(self._style.body_font, size) note_line = len(self._note) for i in range(note_line): print self._note[i] - canvas.drawCentredString(self._style.page_wight / 2.0, - self._style.page_height / 5.0 + (1 + self._style.body_leading) * size * ( - note_line - i - 1), - self._note[i] - ) + canvas.drawCentredString(self._style.page_wight / + 2.0, self._style.page_height / + 5.0 + + (1 + + self._style.body_leading) * + size * + (note_line - + i - + 1), self._note[i]) size = self._style.body_size - 2 canvas.setFont(self._style.body_font, size) - canvas.drawCentredString(self._style.page_wight / 2.0, - self._style.page_bottom / 2.0 + (1 + self._style.body_leading) * size, - self._footer[0]) + canvas.drawCentredString(self._style.page_wight / + 2.0, self._style.page_bottom / + 2.0 + + (1 + + self._style.body_leading) * + size, self._footer[0]) canvas.restoreState() def myLaterPages(self, canvas, doc): @@ -106,9 +142,7 @@ class PdfVswitch(PdfTemplate): ) size = self._style.body_size - 2 canvas.setFont(self._style.body_font, size) - canvas.drawCentredString(self._style.page_wight / 2.0, - self._style.page_bottom - 24, - "%s%s Page %2d " % (self._footer[0], " " * 8, doc.page - 1) - ) + canvas.drawCentredString( + self._style.page_wight / 2.0, self._style.page_bottom - 24, "%s%s Page %2d " % + (self._footer[0], " " * 8, doc.page - 1)) canvas.restoreState() - |