You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python FPDF为每个PDF打印不同内容?循环输出内容一致问题排查

问题原因及解决方法

你的问题出在复用了同一个FPDF实例,导致所有PDF都包含循环过程中累积的内容,而因为cell的位置完全相同,最终显示的始终是第一个添加的内容(0)。

具体分析:

你把pdf = FPDF()和pdf.add_page()放在了循环外面,意味着整个循环都在操作同一个PDF对象:

  • 第一次循环(i=0):添加内容为0的cell,输出0.pdf,此时PDF里只有0;
  • 第二次循环(i=1):在同一个页面的相同位置添加内容为1的cell,此时PDF里同时存在0和1的cell(位置重叠),输出1.pdf;
  • 后续循环以此类推,每个新的cell都叠在之前的cell上面,但由于渲染顺序或视觉覆盖的问题,你看到的始终是最底层的0。

修复代码:

需要把PDF实例的创建和页面添加放到循环内部,确保每个PDF都是独立的:

for i in range(10):
    pdf = FPDF()
    pdf.add_page()
    pdf.cell(w=100, h=100, txt='{0}'.format(i), border=0, ln=0, align='c', fill=False, link='')
    pdf.output('{0}.pdf'.format(i))

这样每次循环都会生成一个全新的PDF文件,每个文件里只有对应i值的内容。

内容的提问来源于stack exchange,提问作者user4258696

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 01:55:18