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

使用Python FPDF添加图片时底部图片跳页,如何禁用页脚或解决?

解决FPDF中图片跳转到新页面的问题

你遇到的问题并非页脚导致,核心原因是图片总高度超过A4页面尺寸,再加上FPDF默认的页面边距,触发了自动分页机制。A4标准页面高度为297mm,你设置每张图片高度为100mm,三张总和300mm已经超出页面高度,因此第三张图被自动放到新页面。

解决方案

通过关闭自动分页、清除页面边距,并调整图片高度适配页面尺寸,就能让三张图片铺满同一页:

from fpdf import FPDF

class PDF(FPDF):
    pass

def add_images(pdf):
    # 关闭自动分页,禁用分页触发机制
    pdf.set_auto_page_break(auto=False, margin=0)
    # 设置页面边距为0,让图片完全覆盖页面
    pdf.set_margins(left=0, top=0, right=0)
    
    # 计算每张图片的高度:A4总高度297mm,三等分后每张99mm
    img_height = 297 / 3
    # 依次添加三张图片,每张占页面1/3高度
    pdf.set_xy(0, 0)
    pdf.image(r'C:\Users\user\Desktop\pictures\1.jpeg', w=210, h=img_height)
    pdf.set_xy(0, img_height)
    pdf.image(r'C:\Users\user\Desktop\pictures\2.jpeg', w=210, h=img_height)
    pdf.set_xy(0, img_height * 2)
    pdf.image(r'C:\Users\user\Desktop\pictures\3.jpeg', w=210, h=img_height)

if __name__ == '__main__':
    pdf = PDF()
    pdf.add_page()
    add_images(pdf)
    pdf.output(r'C:\Users\user\Desktop\test.pdf', 'F')

关键说明

  • set_auto_page_break(auto=False, margin=0):关闭FPDF的自动分页功能,避免内容超出页面时自动新建页面。
  • set_margins(left=0, top=0, right=0):清除页面所有边距,确保图片可以从页面左上角开始铺满整个区域。
  • 按页面高度三等分图片:保证三张图片总高度刚好等于A4页面高度,不会出现超出分页的情况。如果需要保留图片比例,可只设置w=210,让高度自动按比例缩放,再调整总高度适配页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 14:45:33