Как я могу построить структурированную таблицу с несколькими длинами строк внутри ячеек, используя pyfpdf?
Я использую pyfpdf для создания нескольких файлов PDF на основе объекта JSON. На этом PDF-файле я хочу построить таблицу с 3 столбцами и несколькими строками. Однако я не могу правильно отформатировать таблицу из-за того, что некоторые строки слишком длинные и отображаются вне границ ячеек.
Я попытался построить таблицу с помощью методов pdf.cell() и pdf.multi_cell(). Но ни один из этих способов не работал для меня (разные проблемы).
Метод pdf.cell():
pdf.cell(10, 8, 'id', 1, 0, 'C')
pdf.cell(80, 8, 'Description', 1, 0, 'C')
pdf.cell(80, 8, 'Criteria', 1, 0, 'C')
pdf.cell(0, 8, 'Result', 1, 2, 'C')
pdf.cell(-170)
pdf.set_font('arial', '', 6)
i = 1
for test in tests:
pdf.cell(10, 10, str(i), 1, 0, 'C')
pdf.cell(80, 10, info[i-1]['Test'], 1, 0, 'C')
pdf.cell(80, 10, info[i-1]['Criteria'], 1, 0, 'C')
pdf.cell(0, 10, test, 1, 2, 'C')
pdf.cell(-170)
i = i + 1
выход:
Метод pdf.multi_cell():
pdf.cell(10, 8, 'id', 1, 0, 'C')
pdf.cell(80, 8, 'Description', 1, 0, 'C')
pdf.cell(80, 8, 'Criteria', 1, 0, 'C')
pdf.cell(0, 8, 'Result', 1, 2, 'C')
pdf.cell(-170)
pdf.set_font('arial', '', 6)
i = 1
for test in tests:
pdf.cell(10, 10, str(i), 1, 0, 'C')
pdf.multi_cell(80, 5, info[i-1]['Test'], 1, 0, 'C')
pdf.multi_cell(80, 5, info[i-1]['Criteria'], 1, 0, 'C')
pdf.multi_cell(0, 10, test, 1, 2, 'C')
pdf.cell(-170)
i = i + 1
Как видно на изображениях выше, у меня разные проблемы с моими разными подходами. Может ли кто-нибудь помочь мне правильно построить этот стол? Я имею в виду, что длина столбцов "описание" и "критерии" являются переменными, поэтому я не могу жестко закодировать фиксированную ширину или шрифт, потому что в некоторых случаях это не может работать. Спасибо за Ваше внимание.