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

如何用PyPDF2、ReportLab等Python模块为PDF添加自定义文档属性?

用PyPDF2和ReportLab添加PDF自定义文档属性

当然可以,这两个库都支持添加或创建你需要的键值对形式的自定义文档属性,具体实现方法如下:

PyPDF2:修改已有PDF的自定义属性

PyPDF2可以读取现有PDF的元数据,添加自定义属性后重新保存。示例代码:

from PyPDF2 import PdfReader, PdfWriter

# 读取源PDF
reader = PdfReader("input.pdf")
writer = PdfWriter()

# 复制所有页面到writer
for page in reader.pages:
    writer.add_page(page)

# 添加自定义属性(键值对形式)
custom_metadata = reader.metadata | {
    "/CustomName1": "CustomValue1",
    "/CustomName2": "CustomValue2"
}
writer.add_metadata(custom_metadata)

# 保存修改后的PDF
with open("output_with_custom_props.pdf", "wb") as output_file:
    writer.write(output_file)

注意:自定义属性的键需要以/开头,这是PDF元数据的规范要求。

ReportLab:创建新PDF时添加自定义属性

如果是从头创建PDF,ReportLab可以直接在生成文档时嵌入自定义属性。示例代码:

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter

# 创建Canvas对象
c = canvas.Canvas("new_pdf_with_props.pdf", pagesize=letter)

# 添加基础文档属性(可选)
c.setTitle("示例PDF")
c.setAuthor("测试作者")

# 添加自定义属性,通过文档的info字典实现
c._doc.info[0].update({
    "CustomProp": "MyCustomValue",
    "ProjectID": "PROJ-12345"
})

# 绘制内容示例
c.drawString(100, 750, "这是带自定义属性的PDF")

# 保存PDF
c.save()

生成的PDF会包含你定义的键值对属性,在PDF阅读器的文档属性中可以查看。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 02:38:12