使用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
相关产品推荐
相关产品推荐

