python处理PDF3

文档加密与解密

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

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

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

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

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 函数进行解密操作

解密代码如下:

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 @ 2022-03-14 11:00  青竹之下  阅读(136)  评论(0编辑  收藏  举报