37 lines
No EOL
1 KiB
Python
37 lines
No EOL
1 KiB
Python
from reportlab.platypus import Paragraph, Table, TableStyle, Flowable
|
|
from reportlab.lib.styles import ParagraphStyle, getSampleStyleSheet
|
|
from reportlab.lib import colors
|
|
|
|
|
|
class CodeSnippet(Paragraph):
|
|
style = ParagraphStyle(
|
|
name='CodeSnippet',
|
|
parent=getSampleStyleSheet()['Code'],
|
|
backColor=colors.lightgrey, leftIndent=0,
|
|
borderPadding=(5, 5, 5, 5)
|
|
)
|
|
|
|
def __init__(self, code):
|
|
Paragraph.__init__(self, code, self.style)
|
|
|
|
|
|
class SimpleTable(Table):
|
|
style = TableStyle([
|
|
('INNERGRID', (0, 0), (-1, -1), .25, colors.black),
|
|
('BOX', (0, 0), (-1, -1), .25, colors.black),
|
|
])
|
|
|
|
def __init__(self, data, horizontal_align=None):
|
|
Table.__init__(self, data, style=self.style, hAlign=horizontal_align)
|
|
|
|
|
|
class PaidStamp(object):
|
|
def __init__(self, x, y):
|
|
self.x = x
|
|
self.y = y
|
|
|
|
def __call__(self, canvas, doc):
|
|
# TODO: xxx
|
|
canvas.saveState()
|
|
canvas.drawString(self.x, self.y, 'PAID')
|
|
canvas.restoreState() |