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

如何使用Python FPDF创建文档内页面跳转链接

嘿,我来帮你搞定用FPDF创建PDF内部页面链接的事儿!其实FPDF自带了专门的方法来实现这个,步骤很清晰,我给你一步步拆解,再附上完整代码示例。

用Python的FPDF库创建PDF内部页面链接

FPDF提供了非常直接的方式来实现文档内的页面跳转,核心用到两个方法:add_link()和set_link(),再配合文本/区域的链接绑定就能完成需求,下面给你详细说明:

核心方法快速理解

  • add_link():生成一个新的链接标识符(返回整数ID),用来关联目标页面。
  • set_link(link_id, page_num):把之前生成的链接ID和指定的页码绑定起来,点击这个链接就会跳转到对应页码。
  • 要让文本/区域可点击,你可以在cell()、write()或者link()方法中传入这个链接ID。

完整代码示例

下面是一个包含多种场景的完整示例:创建多页PDF、文本跳转链接、区域跳转链接,还有返回首页的功能:

from fpdf import FPDF

# 初始化PDF对象
pdf = FPDF()

# ----------------------
# 第一页:添加跳转到其他页面的文本链接
# ----------------------
pdf.add_page()
pdf.set_font("Arial", size=16)
pdf.cell(200, 10, txt="第一页:点击下方链接跳转到其他页面", ln=True, align='C')

# 创建跳转到第2页的链接
link_page2 = pdf.add_link()
pdf.set_link(link_page2, page=2)
pdf.set_font("Arial", 'U', size=14)  # 加下划线模拟超链接视觉样式
pdf.cell(200, 10, txt="跳转到第二页", ln=True, align='C', link=link_page2)
pdf.set_font("Arial", size=14)  # 恢复默认字体样式

# 创建跳转到第3页的链接
link_page3 = pdf.add_link()
pdf.set_link(link_page3, page=3)
pdf.set_font("Arial", 'U', size=14)
pdf.cell(200, 10, txt="跳转到第三页", ln=True, align='C', link=link_page3)
pdf.set_font("Arial", size=14)

# ----------------------
# 第二页:添加返回第一页的链接
# ----------------------
pdf.add_page()
pdf.set_font("Arial", size=16)
pdf.cell(200, 10, txt="第二页:点击返回第一页", ln=True, align='C')

# 创建返回首页的链接
link_home = pdf.add_link()
pdf.set_link(link_home, page=1)
pdf.set_font("Arial", 'U', size=14)
pdf.cell(200, 10, txt="回到首页", ln=True, align='C', link=link_home)

# ----------------------
# 第三页:添加点击区域跳转的示例
# ----------------------
pdf.add_page()
pdf.set_font("Arial", size=16)
pdf.cell(200, 10, txt="第三页:点击下方灰色区域返回首页", ln=True, align='C')

# 创建返回首页的链接
link_home2 = pdf.add_link()
pdf.set_link(link_home2, page=1)

# 绘制一个灰色矩形区域,给它绑定跳转链接
pdf.set_fill_color(200, 200, 200)
pdf.rect(x=50, y=50, w=100, h=50, style='F')
# 注意link()方法的坐标和尺寸要和矩形完全对应
pdf.link(x=50, y=50, w=100, h=50, link=link_home2)

# 保存生成的PDF
pdf.output("internal_links.pdf")

关键细节提醒

  • 视觉提示:我用了'U'(下划线)来模拟超链接的样式,这不是功能必需的,但能让用户更容易识别可点击的文本。
  • 页码计数:FPDF的页面是从1开始计数的,set_link()里的page参数要对应正确的页码。
  • 区域链接:link()方法可以给任何矩形区域绑定链接,适合做图片跳转或者自定义点击区域的场景。

这样生成的PDF里,所有标记的文本和区域都能点击跳转到指定页面啦!

内容的提问来源于stack exchange,提问作者IronBit - Minecraft

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 19:47:34