我找不到如何在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")
答案 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")