Python中通过PyPDF2实现PDF加密[通俗易懂]

Python中通过PyPDF2实现PDF加密[通俗易懂]场景PyPDF2是一个纯pythonPDF库,能够分割、合并、裁剪和转换PDF文件的页面。它还可以向PDF文件中添加自定义数据、查看选项和密码。它可以从PDF检索文本和元数据,还可以将整个文件合并在一起。PyPDF21.26.0文档:https://pythonhosted.org/PyPDF2/实现使用pip安装pypddf2新建文件夹jiamiPDF新…

大家好,又见面了,我是你们的朋友全栈君。

场景

PyPDF 2是一个纯python PDF库,能够分割、合并、裁剪和转换PDF文件的页面。它还可以向PDF文件中添加自定义数据、查看选项和密码。它可以从PDF检索文本和元数据,还可以将整个文件合并在一起。

PyPDF 2 1.26.0文档:

https://pythonhosted.org/PyPDF2/

实现

使用pip 安装pypddf2

Python中通过PyPDF2实现PDF加密[通俗易懂]Python中通过PyPDF2实现PDF加密[通俗易懂]

新建文件夹jiamiPDF

新建加密前的PDF

Python中通过PyPDF2实现PDF加密[通俗易懂]Python中通过PyPDF2实现PDF加密[通俗易懂]

新建jiamiPDF.py

from PyPDF2 import PdfFileWriter, PdfFileReader

def add_encryption(input_pdf, output_pdf, password):
    pdf_writer = PdfFileWriter()
    pdf_reader = PdfFileReader(input_pdf)

    for page in range(pdf_reader.getNumPages()):
        pdf_writer.addPage(pdf_reader.getPage(page))

    pdf_writer.encrypt(user_pwd=password, owner_pwd=None,
                       use_128bit=True)

    with open(output_pdf, 'wb') as fh:
        pdf_writer.write(fh)

if __name__ == '__main__':
    add_encryption(input_pdf='badao.pdf',
                 output_pdf='badadoencrypted.pdf',
                 password='badao')

 

其中input_pdf=’badao.pdf’是要加密的pdf。

output_pdf=’badadoencrypted.pdf’是加密后要输出的pdf。

password=’badao’是设置的密码。

运行效果:

Python中通过PyPDF2实现PDF加密[通俗易懂]Python中通过PyPDF2实现PDF加密[通俗易懂]

此时会在目录下生成加密后的PDF文件,打开后

Python中通过PyPDF2实现PDF加密[通俗易懂]Python中通过PyPDF2实现PDF加密[通俗易懂]

输错密码后:

Python中通过PyPDF2实现PDF加密[通俗易懂]Python中通过PyPDF2实现PDF加密[通俗易懂]

 

资源以及文件下载

https://download.csdn.net/download/badao_liumang_qizhi/11146656

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152380.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2019年常见的Linux面试题及答案解析,哪些你还不会?

    2019年常见的Linux面试题及答案解析,哪些你还不会?Linux面试题1、绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示?切换目录用什么命令?2、怎么查看当前进程?怎么执行退出?怎么查看当前路径?3、怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户id?查看指定帮助用什么命令?4、Ls命令执行什么功能?可以带哪些参数,有什么区别?5、建立软链接(快捷方式),以及硬链接的命令。6、目录创…

    2022年5月31日
    36
  • matlab怎么表示二元函数,如何用Matlab画二元函数?[通俗易懂]

    matlab怎么表示二元函数,如何用Matlab画二元函数?[通俗易懂]1、首先打开matlab。2、在matlab当前目录空2113间右键5261。41023、然后点击new->M-File。4、然后将文件命令为hello.m。5、然后双击该文1653件,输入[Rmdm]=meshgrid(15:5:50,1:10);6、然后添加f=0.034488*(Rm.^1.9400).*(10^-0.0173*dm);7、接着添加surf(Rm,dm,f)…

    2025年9月29日
    3
  • aspectjweaver的作用[通俗易懂]

    aspectjweaver的作用[通俗易懂]aspectjweaver的作用欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown将代码片显示选择的

    2022年7月12日
    36
  • java中判断两个字符串是否相等「建议收藏」

    java中判断两个字符串是否相等「建议收藏」java中判断两个字符串是否相等

    2022年4月24日
    115
  • linux mysql 监听端口被占用_Linux 查询端口被占用命令[通俗易懂]

    linux中如何查看某个端口是否被占用之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下:1.netstat-anp|grep端口号如下,我以3306为例,netstat-anp|grep3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是以root用户操作,不用加sudo即可查看),如下图1:图1图1中主要看监控状态为LISTEN表示已…

    2022年4月11日
    55
  • 组态王系统管理员默认密码_管理没有本地用户和组

    组态王系统管理员默认密码_管理没有本地用户和组用户和组管理a) 用户分类i. 超级用户:root拥有系统最高的管理权限uid=0(root)gid=0(root)组=0(root)ii. 普通用户系统用户:系统自带的拥有特定功能的用户(编号:1-999)本地用户:使用者新建的用户(编号:1000+)iii. 虚拟用户:这些用户通常不用于登录系统,只是用于维持某些服务的正常运行;b) 创建用户命令useradd[选项]用户名或者adduser-ccomment指定一段注释性描述-d目录指定用户家目.

    2022年8月10日
    81

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号