def __init__(self, logo, title='Baruwa mail report'): "Init" self.pdf = StringIO() self.doc = BaruwaPDFTemplate(self.pdf, topMargin=50, bottomMargin=18) img = u'' if os.path.exists(logo): img = Image(logo) logobj = [(img, title)] logo_table = Table(logobj, [2.0 * inch, 5.4 * inch]) logo_table.setStyle(PIE_TABLE) self.parts = [logo_table] self.parts.append(Spacer(1, 20)) self.sentry = 0
def build_pdf(rows): "Build PDF" pdffile = StringIO() doc = BaruwaPDFTemplate(pdffile, topMargin=50, bottomMargin=18) import baruwa here = os.path.dirname(os.path.dirname(os.path.abspath(baruwa.__file__))) logo = os.path.join(here, 'baruwa', 'public', 'imgs', 'logo.png') img = Image(logo) logobj = [(img, _('Audit Log exported report'))] logo_table = Table(logobj, [2.0 * inch, 5.4 * inch]) logo_table.setStyle(PIE_TABLE) parts = [logo_table] parts.append(Spacer(1, 20)) parts.append(Paragraph(_('Audit Logs'), STYLES['Heading1'])) heading = (( Paragraph(_('Date/Time'), STYLES["Heading6"]), Paragraph(_('Username'), STYLES["Heading6"]), Paragraph(_('Info'), STYLES["Heading6"]), Paragraph(_('Hostname'), STYLES["Heading6"]), Paragraph(_('Remote IP'), STYLES["Heading6"]), Paragraph(_('Action'), STYLES["Heading6"]), )) rows.insert(0, heading) table = Table(rows, [ 1.10 * inch, 1.23 * inch, 1.96 * inch, 1.69 * inch, 0.95 * inch, 0.45 * inch, ]) table.setStyle( TableStyle([ ('FONTSIZE', (0, 0), (-1, -1), 8), ('FONT', (0, 0), (-1, -1), 'Helvetica'), ('FONT', (0, 0), (-1, 0), 'Helvetica-Bold'), ('GRID', (0, 0), (-1, -1), 0.15, colors.black), ])) parts.append(table) doc.title = _('Baruwa Audit log export') doc.build(parts) return pdffile.getvalue()