python 处理pdf加密文件

守听  金牌会员 | 2024-3-29 18:28:50 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 892|帖子 892|积分 2676

近期有同事需要提取加密的pdf文件,截取其中的信息,并且重构pdf文件。网上没有搜到相关的pdf操作,于是咨询了chatgpt,给出了pypdf2的使用案例。但是时间比较久远了,很多库内的调用接口都已经更新了。
于是自行到官方的库内学习相关接口使用。整理的处理代码如下:
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Thu Jan 11 10:36:17 2024
  4. @author: xm AZHE
  5. """
  6. import PyPDF2
  7. file=r'C:\Users\xm\Downloads\xxx1.pdf'
  8. # 打开PDF文件
  9. pdf_file = open(file, 'rb')
  10. # 创建一个PDF阅读器对象
  11. pdf_reader = PyPDF2.PdfReader(pdf_file)
  12. # 创建一个新的PDF写入器对象
  13. pdf_writer = PyPDF2.PdfWriter()
  14. # 截取第0,第101到108页
  15. page = pdf_reader.pages[0]
  16. pdf_writer.add_page(page)
  17. for i in range(101,109):
  18.     page = pdf_reader.pages[i]
  19.     pdf_writer.add_page(page)
  20.     # 顺便导出下每页的图片
  21.     count = 0
  22.     for image_file_object in page.images:
  23.         with open(str(count) + image_file_object.name, "wb") as fp:
  24.             fp.write(image_file_object.data)
  25.             count += 1
  26.     # 打印下下每页的文字
  27.     page.extract_text(0)
  28.    
  29. # 处理的文件加个密
  30. pdf_writer.encrypt("123456")
  31. # 创建一个新的PDF文件并将页面写入其中
  32. out_file=file.replace('.pdf','_remake.pdf')
  33. output_file = open(out_file, 'wb')
  34. pdf_writer.write(output_file)
  35. # 关闭文件
  36. output_file.close()
  37. pdf_file.close()
复制代码
 
PS: 解密用
  1. if reader.is_encrypted:
  2.     reader.decrypt("123456")
复制代码
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

守听

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表