Reportlab вывод значений из БД в Paragraph

имеется view.py в django

def get(request):
    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = 'attachment; filename="Damage Report File.pdf"'
    
    
    buffer = io.BytesIO()
    
    # p = canvas.Canvas(buffer, pagesize=A4)
    # p.setPageSize(landscape(letter))
    MyFontObject = ttfonts.TTFont('a_AntiqueTradyNr',r'c:\Users\user\venv\webapp\news\templates\news\a_AntiqueTradyNr.ttf')
    pdfmetrics.registerFont(MyFontObject)
    # p.setFont("a_AntiqueTradyNr", 35)
    
    mas = Plan.objects.values_list('title','anons','full_text','plan','fact','slujba','data','ispolnitel','status','prim')
    
    
    styles = getSampleStyleSheet()
    styleN = styles["Normal"]
    styleN.fontName = "a_AntiqueTradyNr"
    styleN.alignment = TA_LEFT
    width, height = A3
    # logo = '/home/joel/myappointments/appointments/static/clinic/img/logo/logo.png'
    elements = []
    # print(f'Height={height}')
    # imgw = imgh = 100
    # im = Image(logo, width=imgw, height=imgh)
    # im.hAlign = 'LEFT'
    # elements.append(im)

    headstyle = ParagraphStyle(
        name='MyHeader',
        fontName='a_AntiqueTradyNr',
        fontSize=10,                
        alignment=0
         
    )
    doctorstyle = ParagraphStyle(
        name='MyDoctorHeader',
        fontName='Helvetica',
        fontSize=13,
        leading =10
    )
    
    elements.append(Spacer(1, 20))
    # We use paragraph style because we need to wrap text. We cant directly wrap cells otherwise
    
    drug1 = Paragraph('ФИО ответственного', styleN)
    line1 = [(drug1, "Объект" , "Вид работ", "Объем работ план", "Объем работ факт", "Служба", "Дата", "ФИО исполнителя", "Статус", "Примечание")]
    line2 = list(mas)
   
    data=line1 +line2
    
    medstable = Table(data, repeatRows=1)
    medstable.setStyle(TableStyle([
        ('FONT', (0, 0), (-1, -1), 'a_AntiqueTradyNr', 8),
        ('VALIGN',(0,0),(-1,-1), 'TOP'),
        ('TEXTCOLOR',(0,0),(-1,0),colors.white),
        ('BACKGROUND', (0, 0), (-1, 0), colr(40, 196, 15)),
        ('INNERGRID', (0, 0), (-1, -1), 0.25, colors.black),
        ('BOX', (0, 0), (-1, -1), 0.25, colors.blue),
        #('GRID',(0,1),(-1,-1), 0.5, '#CFEAD4'),
                                ]))
    elements.append(medstable)
    doc = SimpleDocTemplate(buffer, pagesize=letter, rightMargin=10, leftMargin=20, \
        topMargin=20, bottomMargin=20, allowSplitting=1,\
        title="Prescription")
    doc.build(elements)
    response.write(buffer.getvalue())
    buffer.close()
    return response

выгружает все норм введите сюда описание изображения но есть момент, если текст в БД большой (много слов) то таблица выходит за пределы страницы введите сюда описание изображения подскажите, как исправить, в инете есть варик заносить в Paragraph(styleN), но не соображу как

Вернуться на верх