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

Python实现PDF密码保护:PyPDF2 3.0.0+版本旧代码失效求助

适配PyPDF2 3.0.0+版本的PDF密码保护方案

旧代码失效原因

PyPDF2 3.0.0及以上版本对API进行了重构,旧版本的PdfFileReader、PdfFileWriter类以及numPages、getPage()等方法均被移除或替换,导致原有代码无法正常运行。

新版本可用代码

# 导入PyPDF2新版本的核心类
from PyPDF2 import PdfReader, PdfWriter

# 创建PDF写入器对象
writer = PdfWriter()

# 读取目标PDF文件
reader = PdfReader("myfile.pdf")

# 遍历所有页面并添加到写入器中
for page in reader.pages:
    writer.add_page(page)

# 设置加密密码
user_password = "pass"
owner_password = "pass"  # 所有者密码,可设置与用户密码不同,用于获取PDF修改权限

# 对PDF进行加密
writer.encrypt(user_pwd=user_password, owner_pwd=owner_password)

# 将加密后的PDF写入新文件
with open("myfile_encrypted.pdf", "wb") as output_file:
    writer.write(output_file)

关键API变更说明

  • 类名替换:PdfFileReader → PdfReader,PdfFileWriter → PdfWriter
  • 页面获取方式:旧版通过numPages+getPage(idx)的方式改为直接遍历reader.pages属性
  • 方法命名规范:addPage() → add_page(),Write() → write(),统一为下划线命名风格
  • 加密参数:新版本encrypt()方法需显式指定user_pwd(用户打开密码)和owner_pwd(所有者权限密码),旧版的单参数调用方式不再支持

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:30:00