Ejemplo n.º 1
0
 def __init__(self):
     self.pdf = Pdf(margins=[15, 15, 15, 15], styles=self.styles)
Ejemplo n.º 2
0
 def __init__(self):
     self.pdf = Pdf(margins=[29, 15, 15, 15], styles=self.styles)
     self.pdf.define_background(os.path.join(self.current_path,
                                             'background.pdf'))
Ejemplo n.º 3
0
class TablePdf(object):

    def __init__(self):
        self.pdf = Pdf(margins=[15, 15, 15, 15], styles=self.styles)

    @property
    def styles(self):
        base_style = Style(color=ColorRGB(50, 50, 50), text_align='left')
        library = StyleLibrary(base_style=base_style)
        library.add('col1', ColumnStyle(width=10))
        library.add('col2', ColumnStyle(width=50))
        library.add('col3', ColumnStyle(width=30, font_size=7))
        library.add('col3-header', ColumnHeaderStyle(font_size=10))
        library.add(
            'table',
            TableStyle(
                border=1,
                background_color=ColorRGB(230, 230, 230),
                border_color=ColorRGB(90, 90, 90),
                padding='3',
            ),
        )
        library.add(
            'header',
            RowStyle(
                height=10,
                font_size=10,
                background_color=ColorRGB(50, 50, 50),
                color=ColorRGB(255, 255, 255),
                vertical_align='middle',
            ),
            inherits=['table'],
        )
        library.add(
            'footer',
            RowStyle(
                height=10,
                background_color=ColorRGB(150, 150, 150),
                vertical_align='bottom',
            ),
            inherits=['table'],
        )
        library.add('odd', RowStyle(height=0), inherits=['table'])
        library.add(
            'even',
            RowStyle(background_color=ColorRGB(190, 190, 190)),
            inherits=['odd'],
        )
        return library

    def create_pdf(self):
        table = self.pdf.add_table('tableid', style='table')
        table.add_column(style='col1')
        table.add_column(style='col2')
        table.add_column(style='col3', header_style='col3-header')
        table.add_row([u'Title 1', u'Title 2', u'Title 3'], style='header')

        for idx, row in enumerate(self.content):
            style = idx % 2 and 'even' or 'odd'
            table.add_row(row, style=style)
        table.add_row([u'Footer 1', u'Footer 2', u'Footer 3'], style='footer')
        table.render()
        self.pdf.write('table.pdf')

    @property
    def content(self):
        return (
            ['L1.1', 'L1.2', 'L1.3'],
            ['L2.1', 'L2.2', 'L2.3<br/>lorem ipsum dolor sit amet'],
            ['L3.1-1-1-1-1', 'L3.2', 'L3.3'],
            ['L4.1', 'L4.2', 'L4.3'],
            ['L5.1', 'L5.2', 'L5.3'],
            ['L6.1', 'L6.2', 'L6.3'],
            ['L7.1', 'L7.2', 'L7.3'],
            ['L8.1', 'L8.2', 'L8.3'],
            ['L9.1', 'L9.2', 'L9.3'],
            ['L10.1', 'L10.2', 'L10.3'],
            ['L11.1', 'L11.2', 'L11.3'],
            ['L12.1', 'L12.2', 'L12.3'],
            ['L13.1', 'L13.2', 'L13.3'],
            ['L14.1', 'L14.2', 'L14.3'],
            ['L15.1', 'L15.2', 'L15.3'],
            ['L16.1', 'L16.2', 'L16.3'],
            ['L17.1', 'L17.2', 'L17.3'],
            ['L18.1', 'L18.2', 'L18.3'],
            ['L19.1', 'L19.2', 'L19.3'],
            ['L20.1', 'L20.2', 'L20.3'],
            ['L21.1', 'L21.2', 'L21.3'],
            ['L22.1', 'L22.2', 'L22.3'],
            ['L23.1', 'L23.2', 'L23.3'],
            ['L24.1', 'L24.2', 'L24.3'],
            ['L25.1', 'L25.2', 'L25.3'],
            ['L26.1', 'L26.2', 'L26.3'],
            ['L27.1', 'L27.2', 'L27.3'],
            ['L28.1', 'L28.2', 'L28.3'],
            ['L29.1', 'L29.2', 'L29.3'],
        )
Ejemplo n.º 4
0
class BasicPdf(object):

    def __init__(self):
        self.pdf = Pdf(margins=[29, 15, 15, 15], styles=self.styles)
        self.pdf.define_background(os.path.join(self.current_path,
                                                'background.pdf'))

    @property
    def current_path(self):
        return os.path.split(os.path.abspath(__file__))[0]

    @property
    def styles(self):
        base_style = Style(color=ColorRGB(50, 50, 50), text_align='justify')
        library = StyleLibrary(base_style=base_style)
        library.add('title', Style(text_indent=2, font_size=18))
        library.add('first', Style(first_line_indent=10))
        library.add('red', Style(color=ColorRGB(255, 0, 0), padding='3'))
        return library

    def create_pdf(self):
        # Title
        self.pdf.add_h_line()
        self.pdf.cursor.move(y=5)
        self.pdf.add_paragraph('Title', style='title')
        self.pdf.cursor.move(y=5)
        self.pdf.add_h_line()

        # Content
        self.pdf.cursor.move(y=10)
        self.pdf.add_paragraph('''
Donec eu eros sit amet metus finibus dignissim. Aenean purus arcu, facilisis non placerat in, commodo non mi. Mauris vel placerat purus. Morbi at placerat tortor. Aenean pretium lectus et magna dictum, id venenatis mauris laoreet. Sed euismod vel justo sed ultricies. Donec sed urna nec eros venenatis posuere. Vivamus facilisis blandit orci ac consectetur.
        ''', style='first')
        self.pdf.cursor.move(y=5)
        self.pdf.add_paragraph('''
Fusce ornare erat sit amet augue volutpat, nec porttitor metus venenatis. Fusce nec urna augue. Integer finibus vestibulum convallis. Mauris eget dapibus ipsum, mattis luctus mi. Donec faucibus, lacus in vestibulum venenatis, lacus massa fermentum neque, et convallis arcu lacus eget metus. In blandit nunc ut sem porta ullamcorper. Mauris a mi commodo, sollicitudin arcu sed, maximus mauris. Quisque vel facilisis felis, eu auctor enim.
        ''', style='red')
        self.pdf.cursor.move(y=5)
        self.pdf.add_paragraph('''
Maecenas ut tincidunt nunc. Sed ipsum justo, porta sed elit rutrum, suscipit fermentum urna. Pellentesque sagittis elit nec elit tristique tempor et eu risus. Curabitur nec nibh at justo vehicula cursus eget facilisis eros. In tempus est quis nunc venenatis sodales. Duis id lacus sed eros convallis imperdiet. Pellentesque eget ex eros.
        ''')

        self.pdf.write('basic.pdf')