|
import io |
|
from reportlab.lib.pagesizes import letter |
|
from reportlab.platypus import SimpleDocTemplate, Image, Paragraph, Spacer |
|
from reportlab.lib.styles import getSampleStyleSheet |
|
|
|
def create_combined_pdf(intervention_fig, student_metrics_fig, recommendations): |
|
buffer = io.BytesIO() |
|
doc = SimpleDocTemplate(buffer, pagesize=letter) |
|
styles = getSampleStyleSheet() |
|
|
|
|
|
elements = [] |
|
|
|
|
|
img_buffer = io.BytesIO() |
|
intervention_fig.write_image(img_buffer, format="png") |
|
img_buffer.seek(0) |
|
elements.append(Image(img_buffer, width=500, height=300)) |
|
elements.append(Spacer(1, 12)) |
|
|
|
|
|
img_buffer = io.BytesIO() |
|
student_metrics_fig.write_image(img_buffer, format="png") |
|
img_buffer.seek(0) |
|
elements.append(Image(img_buffer, width=500, height=300)) |
|
elements.append(Spacer(1, 12)) |
|
|
|
|
|
elements.append(Paragraph("AI Recommendations", styles['Heading1'])) |
|
elements.append(Paragraph(recommendations, styles['BodyText'])) |
|
|
|
|
|
doc.build(elements) |
|
buffer.seek(0) |
|
return buffer |