Пример #1
0
def draw_table(context, pagesize):
    from reportlab.platypus.doctemplate import SimpleDocTemplate
    from reportlab.platypus import Table, TableStyle, Paragraph
    from reportlab.lib import colors
    from canvas import Canvas

    if OUT2PDF:
        from reportlab.pdfgen.canvas import Canvas

        context = "alabala.pdf"

    data = []
    for i in range(3):
        row = []
        for j in range(3):
            row.append(str(i) + str(j) + unicode("bp", "cp1251"))
        data.append(row)

    widths = [20, None, None]
    table = Table(data, colWidths=widths)

    if 1:
        style = TableStyle(())

        from reportlab.pdfbase.ttfonts import TTFont
        from reportlab.pdfbase import pdfmetrics
        from reportlab import rl_config

        rl_config.T1SearchPath.insert(0, "/usr/share/fonts/X11/Type1/")
        pdfmetrics.dumpFontData()

        # pdfmetrics.registerFont( TTFont('TIMES', 'Verdana.ttf'))

        fontname = "CharterBT-Roman"
        pdfmetrics.findFontAndRegister(fontname)

        style.add("FONTNAME", (0, 0), (-1, -1), fontname, 84)
        style.add("FONTSIZE", (0, 0), (-1, -1), 24)
        style.add("LEADING", (0, 0), (-1, -1), 24)
        style.add("BOX", (0, 0), (-1, -1), 0.25, colors.black)
        style.add("INNERGRID", (0, 0), (-1, -1), 0.25, colors.black)
        # style.add('LINEABOVE', (0,1), (-1,-1), 0.25, colors.black)
        style.add("LINEBELOW", (0, -1), (-1, -1), 2, colors.green)

        style.add("LEFTPADDING", (0, 0), (-1, -1), 0)
        style.add("RIGHTPADDING", (0, 0), (-1, -1), 0)
        style.add("BOTTOMPADDING", (0, 0), (-1, -1), 0)
        style.add("TOPPADDING", (0, 0), (-1, -1), 0)

        table.setStyle(style)

    story = 3 * [table]

    doc = SimpleDocTemplate(filename=context, pagesize=pagesize)
    if not OUT2PDF:
        doc.setPageCallBack(getattr(context, "new_page", None))
    doc.build(story, canvasmaker=Canvas)
Пример #2
0
def make_pagerecorder( story, pagesize =None, **kargs):
    from reporter.engine.rl2wx.page_recorder import PageRecorder
    from reporter.engine.rl2wx.canvas import Canvas as wxCanvas
    from reportlab.platypus.doctemplate import SimpleDocTemplate
    page_recorder = PageRecorder( pagesize)
    doc = SimpleDocTemplate( filename=page_recorder, pagesize=pagesize, **kargs)
    doc.setPageCallBack( getattr( page_recorder, 'new_page', None))
    doc.build( list(story), canvasmaker=wxCanvas)
    page_recorder.debug_doc = doc
    return page_recorder