如何将输出数据写入pdf?

Swe*_*yoe 6 python pdf fpdf

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

usr*_*301 4

您正在正确执行将输出写入 PDF 的所有操作。但是你没有得到你“想要”的结果,因为你的Python代码不正确!

\n\n
for i in str(data):\n      .. do stuff with i here ..\n
Run Code Online (Sandbox Code Playgroud)\n\n

不做你认为它做的事。一旦转换data为字符串 per str(data),它就会神奇地变成字符串

\n\n
[1, 2, 3, 4, 5, 6]\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后for循环迭代该字符串 \xe2\x80\x93 及其字符 \xe2\x80\x93 的内容,并将它们一一写入 PDF。

\n\n

这是你的第一个错误。是的,您必须向 \xe2\x80\x93 提供一个字符串pdf.write,但仅限于您要写入的每个单独项目,而不是整个输入对象。

\n\n

第二个假设pdf.write输出一行,最后包含一个返回。它不是:

\n\n
\n

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

\n
\n\n

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

\n\n

工作代码:

\n\n
import 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