使用PyPDF2无法访问CreationDate元数据的问题咨询
为什么PyPDF2的DocumentInformation没有creationDate属性?
问题出在PyPDF2对PDF元数据键的命名映射规则上:
- PDF原生元数据键(比如
/CreationDate)会被PyPDF2转换为**蛇形命名(snake_case)**的属性,而非你尝试的小驼峰命名(camelCase)。 - 具体来说,
/CreationDate对应的属性名是creation_date,而非creationDate,这就是触发AttributeError的核心原因。
正确的访问方式
你有两种方法可以获取CreationDate的值:
- 使用蛇形命名的属性:
from PyPDF2 import PdfReader reader = PdfReader("example.pdf") meta = reader.metadata # 正确访问创建日期 print(meta.creation_date)
- 直接通过字典形式访问PDF原生键:
# 直接取原始元数据键 print(meta["/CreationDate"])
快速确认属性名的方法
如果不确定某个元数据对应的属性名,可以用dir()查看所有可用属性,或者遍历元数据的键值对:
# 列出所有可访问的属性 print(dir(meta)) # 遍历所有元数据键值对 for key, value in meta.items(): print(f"{key}: {value}")
内容的提问来源于stack exchange,提问作者Curtis Pro
相关产品推荐
相关产品推荐

