我找不到如何在 python 中将输出数据(列表或函数返回)写入 pdf 的方法。这是我的简单代码。我想i
在pdf中逐行写入数据列表。但输出仅显示[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")
Run Code Online (Sandbox Code Playgroud)
您正在正确执行将输出写入 PDF 的所有操作。但是你没有得到你“想要”的结果,因为你的Python代码不正确!
\n\nfor i in str(data):\n .. do stuff with i here ..\n
Run Code Online (Sandbox Code Playgroud)\n\n不做你认为它做的事。一旦转换data
为字符串 per str(data)
,它就会神奇地变成字符串
[1, 2, 3, 4, 5, 6]\n
Run Code Online (Sandbox Code Playgroud)\n\n然后for
循环迭代该字符串 \xe2\x80\x93 及其字符 \xe2\x80\x93 的内容,并将它们一一写入 PDF。
这是你的第一个错误。是的,您必须向 \xe2\x80\x93 提供一个字符串pdf.write
,但仅限于您要写入的每个单独项目,而不是整个输入对象。
第二个假设pdf.write
输出一行,最后包含一个返回。它不是:
\n\n\n此方法从当前位置打印文本。当到达右边距(或遇到 \\n 字符)时,会发生换行并且文本从左边距继续。方法退出后,当前位置将保留在文本末尾。
\n
\n(https://pyfpdf.readthedocs.io/en/latest/reference/write/index.html)
您可以使用 ln
插入换行符,或\\n
在写入之前附加到每个字符串的末尾。
工作代码:
\n\nimport fpdf\n\ndata=[1,2,3,4,5,6]\n\npdf = fpdf.FPDF(format=\'letter\')\npdf.add_page()\npdf.set_font("Arial", size=12)\n\nfor i in data:\n pdf.write(5,str(i))\n pdf.ln()\npdf.output("testings.pdf")\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
18724 次 |
最近记录: |