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

如何使用Python提取Adobe Acrobat Pro DC生成的PDF中的链接?

解决Adobe Acrobat Pro DC生成PDF的链接提取问题

我之前也碰到过一模一样的情况!Adobe Acrobat生成的PDF有时候会用更复杂的结构存储链接,PyPDF2和pdfx对这类特殊格式的支持确实有限。给你几个亲测有效的方案:

方案1:使用PyMuPDF(fitz)

PyMuPDF对各种PDF格式的兼容性非常强,尤其是Acrobat生成的文档,能轻松提取普通链接甚至带动作的链接。

示例代码:

import fitz  # 导入PyMuPDF

def extract_links_with_pymupdf(pdf_path):
    links = []
    doc = fitz.open(pdf_path)
    for page_num in range(len(doc)):
        page = doc.load_page(page_num)
        # 获取页面所有链接注解
        annotations = page.annots()
        if annotations:
            for annot in annotations:
                if annot.type[0] == 8:  # 8代表链接类型注解
                    uri = annot.info.get("uri")
                    if uri:
                        links.append({"page": page_num+1, "url": uri})
        # 处理可能的动作链接(比如JavaScript触发的跳转)
        for link in page.get_links():
            if link.get("uri"):
                links.append({"page": page_num+1, "url": link["uri"]})
    doc.close()
    return links

# 使用示例
pdf_links = extract_links_with_pymupdf("your_acrobat_pdf.pdf")
for link in pdf_links:
    print(f"第{link['page']}页: {link['url']}")

方案2:使用pdfplumber

pdfplumber不仅能提取文本,对PDF的注解和链接解析也很到位,适合处理Acrobat生成的结构化PDF。

示例代码:

import pdfplumber

def extract_links_with_pdfplumber(pdf_path):
    links = []
    with pdfplumber.open(pdf_path) as pdf:
        for page_num, page in enumerate(pdf.pages, start=1):
            # 获取页面所有注解
            for annot in page.annots:
                if annot["type"] == "Link":
                    uri = annot.get("uri")
                    if uri:
                        links.append({"page": page_num, "url": uri})
    return links

# 使用示例
pdf_links = extract_links_with_pdfplumber("your_acrobat_pdf.pdf")
for link in pdf_links:
    print(f"第{link['page']}页: {link['url']}")

额外注意点

  • 如果你的PDF里的链接是图像内嵌的(比如扫描件里的链接),那上面的方法都没用,需要结合OCR工具(比如pytesseract)先识别文本,再提取链接。
  • 先确认PDF没有加密,加密的文档需要先解密才能提取内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 03:59:11