@@ -0,0 +1,1362 @@
+from reportlab.lib.enums import TA_JUSTIFY%0Afrom reportlab.lib.pagesizes import letter%0Afrom reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image%0Afrom reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle%0Afrom reportlab.lib.units import inch%0A%0A%0Aclass Reporter(object):%0A    def __init__(self, name):%0A        self.styles = getSampleStyleSheet()%0A        self.styles.add(ParagraphStyle(name=%22Justify%22, alignment=TA_JUSTIFY))%0A        self.story = %5B%5D%0A        self.name = name%0A        return%0A%0A    def make_report(self):%0A        doc = SimpleDocTemplate(self.name + '.pdf', pagesize=letter,%0A                                rightMargin=72, leftMargin=72,%0A                                topMargin=72, bottomMargin=18)%0A        doc.build(self.story)%0A        return doc%0A%0A    def add_story_text(self, text, style='Normal', space=None, fontsize=12):%0A        if space is None:%0A            space=(1,12)%0A        ptext = '%3Cfond size=%25d%3E%25s%3C/font%3E' %25 (fontsize, text)%0A        self.story.append(Paragraph(ptext, self.styles%5Bstyle%5D))%0A        self.story.append(Spacer(*space))%0A        return%0A%0A    def add_story_image(self, image_path, width=None, height=None):%0A        if width is not None:%0A            width = width*inch%0A        if height is not None:%0A            height = height*inch%0A        im = Image(image_path, width, height)%0A        self.story.append(im)%0A

Add a simple class to work with canvas tools.