示例#1
0
    def beforeDrawPage(self,canvas,doc):
        canvas.setFont(serif_font,10)      
        canvas.setLineWidth(0)
        #header
        canvas.line(header_margin_hor, page_height - header_margin_vert, page_width - header_margin_hor, page_height - header_margin_vert )
        if pdfstyles.show_page_header:
            canvas.saveState()
            canvas.resetTransforms()
            canvas.translate(header_margin_hor, page_height - header_margin_vert - 0.1*cm)
            p = Paragraph(self.title, text_style())
            p.canv = canvas
            p.wrap(page_width - header_margin_hor*2.5, page_height) # add an extra 0.5 margin to have enough space for page number
            p.drawPara()
            canvas.restoreState()
            
        canvas.drawRightString(page_width - header_margin_hor, page_height - header_margin_vert + 0.1 * cm, "%d" % doc.page)

        #Footer
        canvas.saveState()
        canvas.setFont(serif_font,8)
        canvas.line(footer_margin_hor, footer_margin_vert, page_width - footer_margin_hor, footer_margin_vert )
        if pdfstyles.show_page_footer:
            p = Paragraph(formatter.cleanText(pagefooter, escape=False), text_style())
            p.canv = canvas
            w,h = p.wrap(page_width - header_margin_hor*2.5, page_height)
            p.drawOn(canvas, footer_margin_hor, footer_margin_vert - 10 - h)
        canvas.restoreState()
示例#2
0
    def beforeDrawPage(self, canvas, doc):
        canvas.setFont(serif_font, 10)
        canvas.setLineWidth(0)
        #header
        canvas.line(header_margin_hor, page_height - header_margin_vert,
                    page_width - header_margin_hor,
                    page_height - header_margin_vert)
        if pdfstyles.show_page_header:
            canvas.saveState()
            canvas.resetTransforms()
            if not self.rtl:
                h_offset = header_margin_hor
            else:
                h_offset = 1.5 * header_margin_hor
            canvas.translate(h_offset,
                             page_height - header_margin_vert - 0.1 * cm)
            p = Paragraph(self.title, text_style())
            p.canv = canvas
            p.wrap(
                page_width - header_margin_hor * 2.5, page_height
            )  # add an extra 0.5 margin to have enough space for page number
            p.drawPara()
            canvas.restoreState()

        if not self.rtl:
            h_pos = page_width - header_margin_hor
            d = canvas.drawRightString
        else:
            h_pos = header_margin_hor
            d = canvas.drawString
        #d(h_pos, page_height - header_margin_vert + 0.1 * cm, "%d" % doc.page)

        #Footer
        canvas.saveState()
        canvas.setFont(serif_font, 8)
        canvas.line(footer_margin_hor, footer_margin_vert,
                    page_width - footer_margin_hor, footer_margin_vert)
        if pdfstyles.show_page_footer:
            p = Paragraph(formatter.cleanText(pagefooter, escape=False),
                          text_style())
            p.canv = canvas
            w, h = p.wrap(page_width - header_margin_hor * 2.5, page_height)
            p.drawOn(canvas, footer_margin_hor, footer_margin_vert - 10 - h)
            d(page_width / 2, footer_margin_vert - 15 - h, "%d" % doc.page)
        canvas.restoreState()