File size: 941 Bytes
6d01d5b
 
 
 
 
 
 
e27e999
 
 
6d01d5b
e27e999
 
 
 
 
 
 
 
 
 
 
 
 
 
6d01d5b
 
 
e27e999
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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)]