python 处理pdf加密文件
近期有同事需要提取加密的pdf文件,截取其中的信息,并且重构pdf文件。网上没有搜到相关的pdf操作,于是咨询了chatgpt,给出了pypdf2的使用案例。但是时间比较久远了,很多库内的调用接口都已经更新了。
于是自行到官方的库内学习相关接口使用。整理的处理代码如下:
# -*- coding: utf-8 -*-
"""
Created on Thu Jan 11 10:36:17 2024 @author: xm AZHE
""" import PyPDF2
file=r'C:\Users\xm\Downloads\xxx1.pdf'
# 打开PDF文件
pdf_file = open(file, 'rb') # 创建一个PDF阅读器对象
pdf_reader = PyPDF2.PdfReader(pdf_file) # 创建一个新的PDF写入器对象
pdf_writer = PyPDF2.PdfWriter() # 截取第0,第101到108页
page = pdf_reader.pages[0]
pdf_writer.add_page(page)
for i in range(101,109):
page = pdf_reader.pages[i]
pdf_writer.add_page(page)
# 顺便导出下每页的图片
count = 0
for image_file_object in page.images:
with open(str(count) + image_file_object.name, "wb") as fp:
fp.write(image_file_object.data)
count += 1
# 打印下下每页的文字
page.extract_text(0) # 处理的文件加个密
pdf_writer.encrypt("123456") # 创建一个新的PDF文件并将页面写入其中
out_file=file.replace('.pdf','_remake.pdf')
output_file = open(out_file, 'wb')
pdf_writer.write(output_file) # 关闭文件
output_file.close()
pdf_file.close()
PS: 解密用
if reader.is_encrypted:
reader.decrypt("123456")
python 处理pdf加密文件的更多相关文章
- 加密文件之Java改进版
对应Python版:加密文件之Python版Java版比Python版要快得多,两个版本不在一个量级上.在加密解密1G大文件时,Java版花费的时间是秒级,而Python版花费的时间是10分钟级. i ...
- python实用小技能分享,教你如何使用 Python 将 pdf 文档进行 加密 解密
上次说了怎么将word转换为pdf格式 及 实现批量将word转换为pdf格式(点击这里),这次我又get到一个新技能–使用 Python 将 pdf 文档进行 加密 解密,哈哈哈 希望帮到更多人! ...
- Python绘制PDF文件~超简单的小程序
Python绘制PDF文件 项目简介 这次项目很简单,本次项目课,代码不超过40行,主要是使用 urllib和reportlab模块,来生成一个pdf文件. reportlab官方文档 http:// ...
- python对不同类型文件(doc,txt,pdf)的字符查找
python对不同类型文件的字符查找 TXT文件: def txt_handler(self, f_name, find_str): """ 处理txt文件 :param ...
- 用 Python 加密文件
生活中,有时候我们需要对一些重要的文件进行加密,Python 提供了诸如 hashlib,base64 等便于使用的加密库. 但对于日常学习而言,我们可以借助异或操作,实现一个简单的文件加密程序,从而 ...
- 使用Python从PDF文件中提取数据
前言 数据是数据科学中任何分析的关键,大多数分析中最常用的数据集类型是存储在逗号分隔值(csv)表中的干净数据.然而,由于可移植文档格式(pdf)文件是最常用的文件格式之一,因此每个数据科学家都应该了 ...
- 办公利器!用Python快速将任意文件转为PDF
痛点: 相信大家都会遇到一种场景.老师/上司要求你把某个文件转为pdf,并且是一批(不止一个,一个的话手动就可以搞定),并且这种是枯燥无聊的工作,既没有什么技术含量又累. 试想一下,如果我把这些文件放 ...
- Python | 实现pdf文件分页
不知道大家有没有遇到过这么一种情况,就比如一个pdf格式的电子书,我们经常浏览的是其中的一部分,而这电子书的页数很大,每当需要浏览时,就需要翻到对应的页码,就有点儿繁琐. 还有一些情况,比如,我们想分 ...
- windows下用Python把pdf文件转化为图片
依赖:PyMuPDF(pip install pymupdf) # -*- coding: utf-8 -*- """ 1.安装库 pip install pymupdf ...
- Python处理PDF和Word文档常用的方法
Python处理PDF和Word文档的模块是PyPDF2,使用之前需要先导入. 打开一个PDF文档的操作顺序是:用open()函数打开文件并用一个变量来接收,然后把变量给传递给PdfFileReade ...
随机推荐
- Go语言精进之路目录
目录 一.介绍 01.Go 语言的前生今世 二.开发环境搭建 01.Go 语言开发环境搭建 三.初识GO语言 01.Go 多版本管理工具 02.第一个 Go 程序"hello,world&q ...
- 【算法】游戏中的学习,使用c#面向对象特性控制游戏角色移动
最近,小悦的生活像是一首繁忙的交响曲,每天忙得团团转,虽然她的日程安排得满满当当,但她并未感到充实.相反,她很少有时间陪伴家人,这让她感到有些遗憾.在周五的午后,小悦的哥哥突然打来电话,他的声音里充满 ...
- DP 复习
背包 约定使用 \(v_i\) 表示放入第 \(i\) 件物品的花费,\(w_i\) 表示第 \(i\) 件物品的价值,背包容量 \(M\),物品件数 \(N\). 01 背包 每种物品仅有一件,可以 ...
- 虹科干货 | 虹科Redis企业版数据库的延迟如此之小,proxy功不可没!
在Redis企业版集群的后台发生了许多事件,proxy(代理)隐藏了数据库客户端的所有活动. 大多数开发人员在构建应用程序时都会从小规模开始,使用简单的Redis开源(Redis OSS)数据库.在初 ...
- docker常用命令-docker网络
docker命令详解 docker search 在docker hub中搜索镜像: docker pull 从docker镜像源服务器拉取指定镜像或者库镜像: docker push 推送指定镜像或 ...
- MySQL高级SQL语句
MySQL高级SQL语句 围绕两张表 Location表 Store_Info表 #select选择 SELECT Store_Name FROM Store_Info; #distinct去重 ...
- Linux 中如何修改终端提示符颜色?
哈喽大家好,我是咸鱼 我们知道默认情况下,Linux 终端提示符都是简单的黑白色 这种黑白提示一方面看久了容易视觉疲劳,另一方面由于没有高亮显示,看着很不方便,视觉体验极差 所以我们需要修改我们的终端 ...
- c#中适配器模式详解
基础介绍: 想象这样一个场景,原项目中接口返回的数据是XML格式的数据,但现在来了一个新客户,它期望接口返回的数据类型为json格式的. 想要实现要么就是改原有接口,但这样就违反了开闭原则,容 ...
- Markdown使用心得(简单用法解析)
Markdown使用心得(简单用法解析) Markdown的优势 个人看来,MD的优势在于脱离对鼠标的依赖,在简单的熟悉后,从段落格式到字体特效的实现都可以完全脱离鼠标.避免了为了格式和艺术效果多次将 ...
- 使用openpyxl库读取Excel文件数据
在Python中,我们经常需要读取和处理Excel文件中的数据.openpyxl是一个功能强大的库,可以轻松地实现Excel文件的读写操作.本文将介绍如何使用openpyxl库读取Excel文件中的数 ...