【问题标题】:FPDF creates a pdf file with 1 extra page with every iterationFPDF 每次迭代都会创建一个带有 1 个额外页面的 pdf 文件
【发布时间】:2021-03-26 09:51:51
【问题描述】:

我有一个来自 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 页等。 如何避免这种情况,为每个订单号循环创建一页

提前致谢

【问题讨论】:

    标签: python fpdf


    【解决方案1】:

    我没有使用过 FPDF,但我猜问题是您每次都在重新使用相同的 pdf 对象,因此每次调用 add_page 后,您都会在同一个文档中添加另一个页面而不是新页面.

    尝试添加

    pdf = FPDF()
    

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

    【讨论】:

    • 谢谢!有用!我忘记了类实例。
    猜你喜欢
    • 2019-11-04
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 2011-01-23
    • 2014-04-25
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多