某些 PDF 文档有加密功能,以防止别人阅读,只有在打开文档时提供口令才能阅
读。在交互式环境中输入以下代码,处理下载的 PDF,它已经用口令rosebud 加密:

>>>  import  PyPDF2
>>>  pdfReader  =  PyPDF2.PdfFileReader(open('encrypted.pdf',  'rb'))
➊  >>>  pdfReader.isEncrypted
True
>>>  pdfReader.getPage(0)
➋  Traceback  (most  recent  call  last):
File  "<pyshell#173>",  line  1,  in  <module> pdfReader.getPage()
--snip--
File  "C:\Python34\lib\site-packages\PyPDF2\pdf.py",  line  1173,  in  getObject raise  
utils.PdfReadError("file  has  not  been  decrypted")
PyPDF2.utils.PdfReadError:  file  has  not  been  decrypted
➌  >>>  pdfReader.decrypt('rosebud')
1
>>>  pageObj  =  pdfReader.getPage(0)

所有PdfFileReader 对象都有一个 isEncrypted 属性,如果PDF 是加密的,它就是 True,如果不是,它就是 
False➊。在文件用正确的口

要读取加密的 PDF,就调用 decrypt()函数,传入口令字符串➌。在用正确的口令调用 decrypt()后,你会看到调用 
getPage()不再导致错误。如果提供了错误的口令, decrypt()函数将返回 0,并且 getPage()会继续失败。请注意,decrypt()方法只解密了 PdfFileReader 
对象,而不是实际的 PDF 文件。在程序中止后,硬盘上的文件仍然是加密的。程序下次运行时,仍然需要再次调用 decrypt()。

令解密之前,尝试调用函数来读取文件,将会导致错误➋。

13.1.2 解密 PDF相关推荐

  1. PermissionError: [Errno 13] Permission denied: ‘name.pdf‘

    PermissionError: [Errno 13] Permission denied: 'name.pdf' 目录 PermissionError: [Errno 13] Permission ...

  2. c语言深度解剖 pdf,c语言深度解剖(解密).pdf.pdf

    c语言深度解剖(解密).pdf.pdf 还剩 130页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: * Str ...

  3. java 加密word_Java 加密和解密PDF文档

    前言 在日常办公时,为了保护文档不被他人篡改,我们可为文档设置打开口令,即加密.同时,因需要我们也可对加密文档进行解密,以便能够查看和编辑文档.本文将通过Java程序来演示如何对PDF文档进行加密和解 ...

  4. java加密解密 pdf_Java 加密和解密PDF文档

    前言 在日常办公时,为了保护文档不被他人篡改,我们可为文档设置打开口令,即加密.同时,因需要我们也可对加密文档进行解密,以便能够查看和编辑文档.本文将通过Java程序来演示如何对PDF文档进行加密和解 ...

  5. java 解密pdf_Java 加密和解密 PDF

    在日常工作中,当我们需要传输一些重要的PDF文件.合同时,为了避免机密内容被第三方窥探到,我们可以对PDF文件进行加密.当这份文件能够公开了,又可以对其进行解密.那么我们如何在Java应用程序中实现这 ...

  6. java打开密码pdf,在Java中使用密码解密PDF文档

    在Java中使用密码解密PDF文档 文档加密是确保企业与其外部客户之间安全地传递信息的最常用方法之一.所有PDF文件都提供了加密功能,可确保任何试图拦截信息的人都可以在没有密码的情况下打开它,密码应在 ...

  7. java 解密pdf_java – pdfbox:试图解密PDF

    以下 this answer我试图用pdfBox解密pdf文档: PDDocument pd = PDDocument.load(path); if(pd.isEncrypted()){ try { ...

  8. Python调用pikepdf模块解密PDF文件(使用tkinter模块绘制GUI)

    Python调用pikepdf模块解密.合并PDF文件(使用tkinter模块绘制GUI) 安装模块 pip install pikepdf 代码 #!/usr/bin/pythonimport os ...

  9. python批量解密PDF文件

    用解密PDF pdf_reader.decrypy(密码)总会报错. NotImplementedError: only algorithm code 1 and 2 are supported 原因 ...

最新文章

  1. 静态路由和默认路由的配置实例
  2. JS操作Excel读取和写入(模板操作)
  3. B02_NumPy数据属性(ndarray.ndim,ndarray.shape,ndarray.itemsize,ndarray.flags)
  4. TFT_LCD液晶屏驱动设计与验证
  5. Android 8.0 (35)----Android8.0.0-r4的OTA升级流程
  6. 预编译sql查询语句_频繁的查询重新编译– SQL查询性能的杀手–简介
  7. 如何批量修改网页 更新网站 一键保存 windows查看和排序
  8. 【Maxscript入门】学习笔记整理一
  9. Audio Effect
  10. python中的常数e的实现
  11. 单片机cant通讯 c语言,基于C8051F040单片机的CAN总线通信
  12. 内存虚拟化EPT技术简介
  13. 框架系列课程-Spring新版本
  14. 最大公约数几种算法分析
  15. 最新|神秘的互联网大厂薪资和职级!
  16. linux移动文件夹
  17. 第七届iWeb峰会(HTML5峰会)议程曝光
  18. 神经网络概念解释和特点,神经网络概念解释大全
  19. Android 简易的自定义确认弹框AlertDialog
  20. sip 时序图_如何看懂时序图

热门文章

  1. 轻量的开源搜索引擎有哪些?
  2. 【状压+容斥】BZOJ4455 [ZJOI2016] 小星星
  3. ps -aux | grep xxx, kill -s 9, pgrep --Linux下进程
  4. 附录:15个创新世界119座城整体规划与核心思想
  5. c# 调用wmplayer 做mp3播放器
  6. META 連接 MT6572 平台手機後發生錯誤
  7. 简仪USB101—数据采集助手(AI)使用攻略
  8. [RK3128][Android 6.0] u-blox GPS芯片 MAX-7Q调试记录
  9. Portraiture4.1.0最新版PS/LR磨皮美白滤镜插件
  10. 全新PHP云盘网盘系统Cloudreve程序源码一键安装版+可对接多家云存储网盘