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

如何在FPDF中居中图片?当前设置引发拉伸或偏移问题

解决FPDF页眉图片居中且不拉伸的问题

要同时实现图片居中、不拉伸,核心是动态计算居中坐标+保持图片原始宽高比,修改代码如下:

修改后的页眉代码

def header(self):
    """
    Create header for pdf file.
    """
    self.set_left_margin(0)
    self.set_fill_color(242, 242, 242)
    self.add_font('DejaVuSerif', '', font_path, uni=True)
    self.set_font('DejaVuSerif', size=14)
    self.cell(0, 18, '', 0, 0, 'C', True)
    self.ln(1)
    
    # 配置图片显示参数
    target_logo_width = 65  # 自定义想要的图片宽度
    page_width = self.w  # 获取当前PDF页面宽度
    
    # 计算水平居中的X坐标:页面宽度减去图片宽度后,取一半作为左侧偏移
    center_x = (page_width - target_logo_width) / 2
    
    # 插入图片:只设置宽度,高度自动按原始比例适配,避免拉伸
    self.image(name=logo_url, x=center_x, w=target_logo_width)
    self.ln(5)

关键说明

  • 避免拉伸:只指定w(宽度)参数,不设置h(或设为0),FPDF会自动根据图片原始宽高比计算对应高度,保证图片不变形。如果想固定高度,同理只设置h,去掉w即可。
  • 精准居中:通过(页面宽度 - 图片宽度)/2计算X坐标,替代硬编码的x=70,适配不同页面尺寸或图片大小,彻底解决居中问题。
  • 动态适配:用self.w获取当前页面宽度,无需硬编码A4默认的210mm,兼容自定义页面尺寸场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 19:43:22