def generate_pdf_report(self, report_id, recipient):
# PREPARE PDF
report_buffer = BytesIO()
doc = SimpleDocTemplate(
report_buffer,
pagesize=letter,
rightMargin=72, leftMargin=72,
topMargin=72, bottomMargin=72,
)
# COVER PAGE
self.pdf_elements.extend(
api.NotificationApi.get_cover_page(
report_id=report_id,
recipient=recipient,
),
)
# METADATA PAGE
self.pdf_elements.extend(self.get_metadata_page(recipient))
# REPORT
self.pdf_elements.extend(
[Paragraph("Report Questions", self.section_title_style)],
)
for item in self.report_data:
question, answers = item.popitem()
self.render_question(question, answers)
doc.build(
self.pdf_elements,
onFirstPage=self.get_header_footer(recipient),
onLaterPages=self.get_header_footer(recipient),
canvasmaker=NumberedCanvas,
)
result = report_buffer.getvalue()
report_buffer.close()
return result
评论列表
文章目录