问题描述
我从 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,'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() 调用之前。