Spaces:
Running
Running
from reportlab.pdfgen import canvas | |
from io import BytesIO | |
def generate(transcription: str, summary: str): | |
buffer = BytesIO() | |
c = canvas.Canvas(buffer) | |
# Title | |
c.setFont("Helvetica-Bold", 14) | |
c.drawString(100, 800, "π Video Summary Report") | |
c.setFont("Helvetica", 12) | |
# Transcription section | |
c.drawString(100, 770, "Transcription (first 1000 characters):") | |
for i, line in enumerate(split_lines(transcription[:1000], 90)): | |
c.drawString(100, 750 - i * 15, line) | |
# Summary section | |
offset = 750 - (len(transcription[:1000]) // 90 + 1) * 15 - 30 | |
c.drawString(100, offset, "Summary (first 1000 characters):") | |
for i, line in enumerate(split_lines(summary[:1000], 90)): | |
c.drawString(100, offset - 20 - i * 15, line) | |
c.save() | |
buffer.seek(0) | |
return buffer.read() | |
def split_lines(text, width): | |
return [text[i:i + width] for i in range(0, len(text), width)] |