Python PyFPDF перенос текста с отступом - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть одна небольшая проблема при создании отчета в формате PDF с PyFPDF. Если я могу это исправить, мой проект завершен, поэтому любое быстрое исправление очень желательно, даже если оно грязное.

Мне нужна комбинация отступа и переноса текста, но мои подходы пока не совместимы. Я делаю отступ с 8 символами табуляции (\ t), 16 для двух уровней отступа. Я печатаю строки в multi_cell, чтобы убедиться, что они переносятся на следующую строку. Однако, когда текст переносится, он, очевидно, не сохраняет символы табуляции с самого начала.

description

Кажется, я не могу понять, как разместить multi_cell больше вправо или по определенной координате x, поэтому мне пришлось использовать несколько символов \ t. Вот пример кода ниже:

for d in currentDiagnoses:
    pdf.set_font("Arial", size = 9, style = 'B')
    pdf.multi_cell(0, 5, "- " + d.name, 0, 'L')
    pdf.set_font("Arial", size = 9, style = '')
    for i in d.items:
        if isinstance(i, list):
            pdf.multi_cell(0, 5, "\t\t\t\t\t\t\t\t= " + i[0], 0, 'L')
            for subi in i:
                if subi == i[0]:
                    continue
                pdf.multi_cell(0, 5, "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t- " + subi, 0, 'L')
        else:
            pdf.multi_cell(0, 5, "\t\t\t\t\t\t\t\t= " + i, 0, 'L')\

Код TL; DR: для каждого объекта диагностики выведите название диагноза. Затем напечатайте каждый критерий в диагнозе с отступом один раз (8 вкладок). Если сам элемент является списком, напечатайте первый элемент этого списка с одним отступом, а остальные элементы с двумя отступами (16 вкладок).

Надеюсь, это не слишком запутанно. Мы пытаемся автоматизировать создание отчетов о пациентах, и это последний шаг, прежде чем мы сможем начать работу.

...