python处理PDF3

文档加密与解密

你可能在打开部分 PDF 文件的时候,会弹出下面这个界面:

这种就是 PDF 文件被加密了,在打开的时候需要相应的密码才行

本节所提到的也只是基于 PDF 文档的加密解密,而不是所谓的 PDF 密码破解。

在对 PDF 文件加密需要使用 encrypt 函数,对应的加密代码也比较简单:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import os
from PyPDF2 import PdfFileReader, PdfFileWriter
  
def encrypt_pdf(filepath, save_filepath, passwd='xiaoyi'):
    """
    PDF文档加密
    @param filepath:PDF文件路径
    @param save_filepath:加密后的文件保存路径
    @param passwd:密码
    @return:
    """
    pdf_reader = PdfFileReader(filepath)
    pdf_writer = PdfFileWriter()
  
    for page_index in range(pdf_reader.getNumPages()):
        pdf_writer.addPage(pdf_reader.getPage(page_index))
  
    # 添加密码
    pdf_writer.encrypt(passwd)
    with open(save_filepath, "wb") as out:
        pdf_writer.write(out)
         
# 文档加密
encrypt_pdf(filepath, save_filepath, passwd='xiaoyi')

  

针对已经加密的 PDF 文件,也可以使用 decrypt 函数进行解密操作

解密代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def decrypt_pdf(filepath, save_filepath, passwd='xiaoyi'):
    """
    解密 PDF 文档并且保存为未加密的 PDF
    @param filepath:PDF文件路径
    @param save_filepath:解密后的文件保存路径
    @param passwd:密码
    @return:
    """
    pdf_reader = PdfFileReader(filepath)
    # PDF文档解密
    pdf_reader.decrypt('xiaoyi')
  
    pdf_writer = PdfFileWriter()
    for page_index in range(pdf_reader.getNumPages()):
        pdf_writer.addPage(pdf_reader.getPage(page_index))
  
    with open(save_filepath, "wb") as out:
        pdf_writer.write(out)
         
# 文档解密
decrypt_pdf(filepath, save_filepath, passwd='xiaoyi')

  参考链接:(57条消息) 九大Python处理PDF操作_菜鸟学Python数据分析的博客-CSDN博客

posted @   青竹之下  阅读(157)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示