Python PDF文档加密与保护:确保你的文件安全
引言
在信息化时代,PDF 文件承载着大量重要数据,从企业合同、财务报表,到个人敏感信息,一旦被未授权访问或修改,可能会造成严重损失。手动设置密码或保护文件不仅繁琐,而且难以满足复杂的安全需求。借助 Python 和 Spire.PDF for Python库,我们可以轻松实现 PDF 文件的加密、权限管理和水印添加,让文件安全保护变得简单高效。
安装 Spire.PDF for Python
在开始操作之前,需要先安装 Spire.PDF for Python 库:
pip install spire.pdf
安装完成后,即可在 Python 中使用库提供的功能进行 PDF 文件加密和保护。
1. 设置打开密码并限制编辑和打印权限
为了防止未授权用户打开 PDF 文件,同时控制文件的编辑和打印权限,我们可以在同一段代码中完成:
from spire.pdf import *
from spire.pdf.common import *# 创建 PdfDocument 对象
pdf = PdfDocument()# 加载 PDF 文件
pdf.LoadFromFile("sample.pdf")# 设置用户密码(打开文件)和拥有者密码(修改权限)
userPassword = "user123"
ownerPassword = "e-iceblue"# 创建 PdfSecurityPolicy 对象
securityPolicy = PdfPasswordSecurityPolicy(userPassword, ownerPassword)
securityPolicy.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES_256# 设置文档权限
securityPolicy.DocumentPrivilege = PdfDocumentPrivilege.AllowAll
# 禁止打印和内容复制
securityPolicy.DocumentPrivilege.AllowPrint = False
securityPolicy.DocumentPrivilege.AllowContentCopying = False# 对 PDF 文件应用加密策略
pdf.Encrypt(securityPolicy)# 保存加密后的 PDF
pdf.SaveToFile("EncryptPDF.pdf", FileFormat.PDF)# 释放资源
pdf.Dispose()
通过上述操作,我们不仅确保 PDF 文件需要密码才能打开,还能限制用户打印或复制内容,非常适合共享重要文件。
2. 添加水印保护
除了密码保护,我们还可以通过添加水印来标识文件归属或机密等级,防止未经授权的传播:
from spire.pdf import *
from spire.pdf.common import *
import math# 创建 PdfDocument 对象
doc = PdfDocument()# 加载 PDF 文件
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.pdf")# 设置水印字体
font = PdfTrueTypeFont("Times New Roman", 48.0, 0, True)
text = "DO NOT COPY"# 测量文字尺寸
text_width = font.MeasureString(text).Width
text_height = font.MeasureString(text).Height# 为每页添加水印
for i in range(doc.Pages.Count):page = doc.Pages.get_Item(i)state = page.Canvas.Save()x = page.Canvas.Size.Width / 2y = page.Canvas.Size.Height / 2page.Canvas.TranslateTransform(x, y)page.Canvas.RotateTransform(-45.0)page.Canvas.SetTransparency(0.7)page.Canvas.DrawString(text, font, PdfBrushes.get_Blue(), PointF(-text_width / 2, -text_height / 2))page.Canvas.Restore(state)# 保存添加水印后的 PDF
doc.SaveToFile("TextWatermark.pdf")
doc.Dispose()
水印会显示在 PDF 的中心,并倾斜 45 度,同时设置透明度,确保既保护文件,又不影响阅读。
总结
通过 Python和Spire.PDF for Python,我们可以轻松实现 PDF 文件的多维度保护:
- 设置打开密码,并限制编辑和打印权限,防止未授权访问和操作。
- 添加水印,标识文件归属,减少未经授权传播风险。
结合这两种方法,可以大幅提升 PDF 文件的安全性,同时节省手动操作的时间和精力。