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)
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