如何将输出数据写入pdf?

时间:2018-03-19 03:35:34

标签: python pdf

我找不到如何在python中将输出数据(列表或函数返回)写入pdf的方法。这是我的简单代码。我想在pdf中逐行编写i数据列表。但输出仅显示[1,2,3,4,5,6]。 哪个pdf模块对我来说会更好用?

import fpdf

data=[1,2,3,4,5,6]

pdf = fpdf.FPDF(format='letter')
pdf.add_page()
pdf.set_font("Arial", size=12)

for i in str(data):
    pdf.write(5,i)
pdf.output("testings.pdf")

1 个答案:

答案 0 :(得分:2)

您正在做正确的事情,将输出写入PDF。但是你没有得到你想要的结果,因为你的 Python 代码不正确!

for i in str(data):
      .. do stuff with i here ..

不符合您的想法。只要您将data转换为字符串,每str(data),就会神奇地成为字符串

[1, 2, 3, 4, 5, 6]

然后for循环遍历该字符串的内容 - 它的字符 - 并将它们逐个写入PDF。

这是你的第一个错误。是的,您必须提供一个字符串pdf.write - 但只提供您要编写的每个单独项目,而不是整个输入对象。

第二个假设pdf.write输出一行,包括 return 。它没有:

  

此方法从当前位置打印文本。当达到右边距(或符合\ n字符)时,会发生换行并且文本从左边距继续。方法退出时,当前位置仅保留在文本的末尾   (https://pyfpdf.readthedocs.io/en/latest/reference/write/index.html

您可以使用ln插入换行符,或在写入之前在每个字符串的末尾附加\n

工作代码:

import fpdf

data=[1,2,3,4,5,6]

pdf = fpdf.FPDF(format='letter')
pdf.add_page()
pdf.set_font("Arial", size=12)

for i in data:
    pdf.write(5,str(i))
    pdf.ln()
pdf.output("testings.pdf")