使用PyFPDF生成PDF报告时,我遇到一个小问题。如果我能解决这个问题,那么我的项目就完成了,因此,即使是一团糟,任何快速修复都非常可取。
我需要结合使用缩进和自动换行,但是到目前为止,我的方法并不兼容。我用8个制表符(\ t)缩进行,对于两个缩进级别,缩进16行。我在multi_cell中打印这些行,以确保将它们换行到下一行。但是,当文字换行时,显然不会从一开始就保留制表符。
我似乎无法弄清楚如何将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个选项卡)。
希望这并不太令人困惑。我们正在尝试自动生成患者报告,这是我们上线之前的最后一步。