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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 回顾JPS命令_实时打印日志命令

    回顾JPS命令_实时打印日志命令一概述jps是jdk提供的一个查看当前java进程的小工具,可以看做是JavaVirtualMachineProcessStatusTool的缩写。非常简单实用。命令格式:jps[options][hostid][options]选项:-q:仅输出VM标识符,不包括classname,jarname,argumentsinmainmethod-m:输出mainmethod的参数-l:输出完全…

    2022年9月15日
    0
  • 华为P40怎么解账号锁P40Pro忘记密码ID账号锁解除方案开机设备解锁帐号软件使用方法

    华为P40怎么解账号锁P40Pro忘记密码ID账号锁解除方案开机设备解锁帐号软件使用方法​今天带来一台用户华为mate30手机强制清除华为账号锁案例分享,这个台手机是用户公司手机,由于前使用者离职后未能退出手机的华为账号和锁屏密码,导致手机无法使用。自己通过简单的恢复出厂设置后,发现手机有华为账号锁无法激活手机,这才联系到刷机爱好者技术人员,给予远程强制刷机移除华为mate30的账号锁。在此提醒广大用户,登录的华为账号建议绑定经常使用的手机号码,防止无法找回密码从而到时手机无法使用。在刷机解锁过程中需要准备以下工具:准备windwos系统电脑一台,有条件的用户可以找台配置.

    2022年6月23日
    126
  • redisclient怎么用_redis go

    redisclient怎么用_redis gohttps://blog.csdn.net/feinifi/article/details/87857477

    2022年10月12日
    0
  • 《机器学习与数据科学(基于R的统计学习方法)》——1.7 RStudio

    《机器学习与数据科学(基于R的统计学习方法)》——1.7 RStudio

    2022年3月2日
    36
  • python移位运算,python移位运算

    python移位运算,python移位运算title:python移位运算date:2018-10-1219:55:22tags:#标签-PYTHONpython移位运算密码算法程序设计实践选的SHA-1。在写的过程中遇到一丢丢关于python移位的问题,记录一下。SHA-1其中第一步需要填充消息。简单阐述一下sha1填充消息的过程:如输入消息“123”,先转成ascii码——313233,消息长度为3*8=24。即001100…

    2022年7月13日
    13
  • disruptor (史上最全)[通俗易懂]

    disruptor (史上最全)[通俗易懂]文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录语雀版|总目录码云版|总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+

    2022年7月1日
    24

发表回复

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

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