class RLDocTemplate(BaseDocTemplate): ''' Heir of the class BaseDocTemplate from reportlab.platypus is a type of doc used to generate the report starting from a list of Flowables construct in ``Report_RUN.py`` module. ''' def afterInit(self): self.addPageTemplates(FrontCoverTemplate('Cover', self.pagesize)) self.addPageTemplates(OneColumnTemplate('Normal', self.pagesize)) self.addPageTemplates(Credits('Credits', self.pagesize)) self.seq = Sequencer() def beforeDocument(self): self.canv.showOutline() self.title = "(Document Title Goes Here)" self.chapter = "(No chapter yet)" self.seq.reset('section') self.seq.reset('chapter') def afterFlowable(self, flowable): """Detect Level 1 and 2 headings, build outline, and track chapter title.""" if isinstance(flowable, Paragraph): style = flowable.style.name txt = flowable.getPlainText() if style == 'Title': self.title = txt elif style == 'Heading1': self.chapter = txt key = 'ch%s' % self.seq.nextf('chapter') self.canv.bookmarkPage(key) self.canv.addOutlineEntry(txt, key, 0, 0) self.seq.reset("section") self.notify('TOCEntry', (0, txt, self.page, key)) elif style == 'Heading2': self.section = flowable.text key = 'ch%ss%s' % (self.seq.thisf("chapter"), self.seq.nextf("section")) self.canv.bookmarkPage(key) self.canv.addOutlineEntry(txt, key, 1, 0) self.notify('TOCEntry', (1, txt, self.page, key))
class RLDocTemplate(BaseDocTemplate): def afterInit(self): self.addPageTemplates(FrontCoverTemplate('Cover', self.pagesize)) self.addPageTemplates(TOCTemplate('TOC', self.pagesize)) self.addPageTemplates(OneColumnTemplate('Normal', self.pagesize)) self.addPageTemplates(TwoColumnTemplate('TwoColumn', self.pagesize)) self.seq = Sequencer() def beforeDocument(self): self.canv.showOutline() self.title = "(Document Title Goes Here)" self.chapter = "(No chapter yet)" self.seq.reset('section') self.seq.reset('chapter') def afterFlowable(self, flowable): """Detect Level 1 and 2 headings, build outline, and track chapter title.""" if isinstance(flowable, Paragraph): style = flowable.style.name txt = flowable.getPlainText() if style == 'Title': self.title = txt elif style == 'Heading1': self.chapter = txt key = 'ch%s' % self.seq.nextf('chapter') self.canv.bookmarkPage(key) self.canv.addOutlineEntry(txt, key, 0, 0) self.seq.reset("section") self.notify('TOCEntry', (0, txt, self.page, key)) elif style == 'Heading2': self.section = flowable.text key = 'ch%ss%s' % (self.seq.thisf("chapter"), self.seq.nextf("section")) self.canv.bookmarkPage(key) self.canv.addOutlineEntry(txt, key, 1, 0) self.notify('TOCEntry', (1, txt, self.page, key))
class RLDocTemplate(BaseDocTemplate): def afterInit(self): self.addPageTemplates(FrontCoverTemplate("Cover", self.pagesize)) self.addPageTemplates(TOCTemplate("TOC", self.pagesize)) self.addPageTemplates(OneColumnTemplate("Normal", self.pagesize)) self.addPageTemplates(TwoColumnTemplate("TwoColumn", self.pagesize)) self.seq = Sequencer() def beforeDocument(self): self.canv.showOutline() self.title = "(Document Title Goes Here)" self.chapter = "(No chapter yet)" self.seq.reset("section") self.seq.reset("chapter") def afterFlowable(self, flowable): """Detect Level 1 and 2 headings, build outline, and track chapter title.""" if isinstance(flowable, Paragraph): style = flowable.style.name txt = flowable.getPlainText() if style == "Title": self.title = txt elif style == "Heading1": self.chapter = txt key = "ch%s" % self.seq.nextf("chapter") self.canv.bookmarkPage(key) self.canv.addOutlineEntry(txt, key, 0, 0) self.seq.reset("section") self.notify("TOCEntry", (0, txt, self.page, key)) elif style == "Heading2": self.section = flowable.text key = "ch%ss%s" % (self.seq.thisf("chapter"), self.seq.nextf("section")) self.canv.bookmarkPage(key) self.canv.addOutlineEntry(txt, key, 1, 0) self.notify("TOCEntry", (1, txt, self.page, key))