Spaces:
Paused
Paused
| 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)] |