在数字化时代,文档的安全性变得越来越重要。特别是对于包含敏感信息的PDF文件,确保其不被未经授权的人员访问或修改是至关重要的。本文将介绍如何使用Python在PDF文档中设置密码,以及如何移除已经设置的密码。
目录
PDF加密基础知识
Python 为PDF文档设置密码
Python移除PDF文档中的密码
首先,我们需要安装第三方库 Spire.PDF for Python。可以下载后手动安装或者使用以下pip命令安装:
pip install Spire.PDF
PDF加密基础知识
我们可以给PDF文件设置密码或禁止某些功能来保护PDF。加密PDF时有以下两种类型的密码:
- 打开密码或称用户密码(open password):这是访问PDF文件所需的密码。设置了用户密码后,每次打开文件时都需要输入正确的密码。
- 权限密码(permissions password):控制对PDF文件的操作权限,例如是否允许打印、复制或编辑文档等。
两种密码结合使用可以为PDF文件提供多层次的安全保护。
在Python中,我们也可以使用Spire.PDF for Python提供的 PdfDocument.Security.Encrypt(openPassword: string, permissionPassword: string, permissions: PdfPermissionsFlags, keySize: PdfEncryptionKeySize) 方法为PDF文档设置这两种密码。
代码示例如下:
Python 为PDF文档设置密码
from spire.pdf.common import *
from spire.pdf import *
# 加载PDF文件
pdf = PdfDocument()
pdf.LoadFromFile("示例文档.pdf")
# 用指定密码加密 PDF 文件, 并设置操作权限和密钥大小
pdf.Security.Encrypt("123", "abc", PdfPermissionsFlags.Print, PdfEncryptionKeySize.Key128Bit)
# 保存加密的PDF文件
pdf.SaveToFile("加密PDF文档.pdf", FileFormat.PDF)
以上代码为PDF文档设置了打开密码和权限密码,并允许打印操作和指定了一个 128 位的加密密钥大小。Spire.PDF for Python还支持40位(Key40Bit)和256位(Key256Bit)密钥大小。
加密的PDF文档:
使用密码打开后其权限限制如图:
Python移除PDF文档中的密码
from spire.pdf.common import *
from spire.pdf import *
# 加载已加密的PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("加密PDF文档.pdf", "123")
# 将打开密码和权限密码设置为空
pdf.Security.Encrypt(str(), str(), PdfPermissionsFlags.Default, PdfEncryptionKeySize.Key128Bit, "abc")
# 保存PDF文档
pdf.SaveToFile("解除PDF密码.pdf", FileFormat.PDF)
在这个示例中,我们先使用设置的密码打开PDF文档后,然后再次调用Encrypt()方法并将PDF用户密码和权限密码这两个参数设置为空,即可删除PDF文件中的密码。
▶ 点击查看更多Python操作PDF 的示例:Spire.PDF for Python 中文教程