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

使用PyMuPDF创建PDF命名目标链接失败问题求助

PyMuPDF创建PDF命名目标链接失败的修复方案

问题原因及修复点

  • 命名链接格式错误:定义LINK_NAMED类型链接时,name字段只需填写命名目标的原始名称,不需要添加nameddest=前缀。原代码中"nameddest=anchor4"需改为"anchor4"。
  • 代码语法问题:
    • 移除page.insert_link(namedlink)行的冗余乱码注释your text;
    • 修复遍历链接循环中的缩进错误:print(link)必须缩进在for link in links:代码块内,否则会引发语法错误。

修正后的完整代码

# 导入PyMuPDF库
import fitz

# 打开源PDF文件
doc = fitz.open("pdf-with-named-destination.pdf")
from_rect = fitz.Rect(50, 50, 100, 100)

# 获取源PDF的第4页(索引从0开始)
page = doc[3]

# 定义命名链接
namedlink = {
    "kind": fitz.LINK_NAMED,
    "name": "anchor4",  # 直接使用命名目标名称
    "from": from_rect  
}

# 向页面插入链接
page.insert_link(namedlink)
idx = 0

# 打印所有页面的链接
for page in doc:
    idx += 1
    links = page.get_links()
    if len(links) > 0:
        print(f"------ 页码: {idx} ------:")
        for link in links:
            print(link)
            print("\n")

# 保存修改后的PDF
doc.save("pdf-with-named-destination-link.pdf")
doc.close()
doc = None

验证方法

运行修正后的代码后,打开生成的PDF文件,点击页面中坐标为(50,50,100,100)的区域,即可跳转到名称为anchor4的命名目标位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 10:09:57