def create_doc_details(c, table_header, table_body, table_footer):
w, h = A4
document_details = []
c.setFont("Helvetica", 8)
document_details.append(table_header)
for detail in table_body:
document_details.append (detail)
document_details.append(table_footer)
ts = [
('FONT', (0,0), (-1,-1), 'Times-Roman', 8),
('ALIGN', (1,1), (-1,-1), 'CENTER'),
('LINEABOVE', (0,0), (-1,0), 1, purple),
('LINEBELOW', (0,0), (-1,0), 1, purple),
('FONT', (0,0), (-1,0), 'Times-Bold', 6),
('LINEABOVE', (0,-1), (-1,-1), 1, purple),
('LINEBELOW', (0,-1), (-1,-1), 0.5, purple,1, None, None, 4,1),
('LINEBELOW', (0,-1), (-1,-1), 1, red),
('FONT', (0,-1), (-1,-1), 'Times-Bold' ),
]
table = Table(document_details, style=ts, colWidths=35)
aW = w
aH = h
w1,h1 = table.wrap(aW, aH)# find required
if w1<=aW and h1<=aH:
table.drawOn(c, inch ,h - h1 - inch*2.5 )
else:
raise ValueError, "Not enough room"