FPDF 每次迭代都会创建一个带有 1 个额外页面的 pdf 文件

FPDF creates a pdf file with 1 extra page with every iteration

我从 FPDF 库中获得了创建 pdf 的功能。 比方说,我有 4 个订单,我需要为每个订单创建 pdf,所以我遍历它们,

orders = [10, 11, 12, 13]
for o in orders: 
    generate_pdf(o)

函数generate_pdf:

from fpdf import FPDF
pdf = FPDF()
def generate_pdf(DokId):
    pdf.add_page()
    header = "Order #{}".format(DokId)
    
    pdf.set_font('Arial', 'B', 20)
    w = pdf.get_string_width(header) + 6
    pdf.set_x((210 - w) / 2)
    pdf.cell(w, 9, header, 0, 0, 'C')
    pdf.line(20, 18, 210-20, 18)
    pdf.output('{}.pdf'.format(DokId), 'F')
    return None

对于我列表中的第一个 el,我有 1 页的文件“10.pdf”,下一个 - 2 页,等等。 如何避免这种情况并在循环中为每个订单号只创建一页

提前致谢

我没用过 FPDF,但我猜问题是你每次都重新使用同一个 pdf 对象,所以每次调用 add_page 后,你都会向同一个页面添加另一个页面文档而不是新文档。

尝试添加

pdf = FPDF()

在您的 pdf.add_page() 调用之前。