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

如何从AutoCAD生成的批量PDF中提取每页页面名称?

从AutoCAD批量生成的PDF中提取页面名称

AutoCAD导出的批量PDF,其页面名称通常不会以普通文本形式存在于页面内容中,而是存储在PDF的页面属性或书签结构里,以下是几种可行的提取方式:

1. 直接读取页面的Label属性(最常用)

AutoCAD批量导出PDF时,默认会将图纸名称设置为PDF页面的label属性,用PyMuPDF可以直接获取:

import fitz

pdfLocation = "TestPDF.pdf"
doc = fitz.open(pdfLocation)

for page_idx in range(doc.page_count):
    page = doc[page_idx]
    # 获取页面名称(AutoCAD导出的PDF通常存在这里)
    page_name = page.label
    print(f"第{page_idx+1}页名称: {page_name}")

doc.close()

2. 从书签/大纲中匹配对应页面

如果PDF包含书签(AutoCAD导出时可勾选生成书签),书签标题通常对应页面名称,可通过大纲关联到页面:

import fitz

pdfLocation = "TestPDF.pdf"
doc = fitz.open(pdfLocation)

# 获取文档大纲(书签)
toc = doc.get_toc()
for entry in toc:
    # entry格式:[层级, 标题, 页码],页码从1开始
    level, title, page_num = entry
    print(f"页面{page_num}名称: {title}")

doc.close()

3. 检查页面元数据或自定义属性

少数情况下,AutoCAD会将页面名存入页面的元数据字典,可尝试读取:

import fitz

pdfLocation = "TestPDF.pdf"
doc = fitz.open(pdfLocation)

for page_idx in range(doc.page_count):
    page = doc[page_idx]
    # 获取页面元数据
    page_meta = page.info
    # 检查是否存在自定义字段(不同版本AutoCAD可能有差异)
    if "Title" in page_meta:
        print(f"第{page_idx+1}页名称: {page_meta['Title']}")

doc.close()

说明

你之前用page.get_text()找不到是因为页面名称不是绘制在页面上的可见文本,而是PDF文件的结构化属性,不属于页面内容范畴。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 06:45:12