PDF有编辑密码怎么办

目录

注意:

windows方法:

1 python 下载

2 打开命令行

3 安装 pikepdf

4 编写python脚本

5 使用py脚本

6解密完成

Linux方法:


注意:

此方法可以用于破解PDF的编辑密码,而不是PDF的打开密码

当遇到类似如下问题时可以使用本方法解决:

想要操作复制内容时,发现需要输入密码

windows方法:

1 python 下载

Python的版本要求在3.7和3.7以上即可,我这里使用的是3.7版本

下载地址: Index of /ftp/python/3.7.0/

下载后点击安装即可

2 打开命令行

右键win图标选择终端管理员,或者win+R 输入cmd,打开cmd窗口

3 安装 pikepdf

CMD命令中输入   pip install pikepdf   

4 编写python脚本

任意目录下(要求没有中文路径)新建一个文本文件

重命名为 xxxx.py(我这里命名为 unlockpdf.py

然后编辑该文件内容如下:

可直接复制代码如下:

import tkinter
from tkinter import filedialog
import pikepdf
import os

# Windows
print('请选择PDF文件。 Please choose PDF.\n')

# 打开一个文件选择对话框
root = tkinter.Tk()
root.withdraw() # 隐藏多余的窗口

# 选择文件路径
filePath = filedialog.askopenfilename()

# 用pikepdf破解,并以unlocked.pdf保存在当前程序所在路径下
pdf = pikepdf.open(filePath)
pdf.save('unloked.pdf')

print('解密完成。 Unloked done.')
os.system("pause") # 请按任意键继续. . .

保存文件后可以看到生成了一个python脚本文件

5 使用py脚本

双击该脚本文件

对话框中选择想要解密的文件即可

6解密完成

解密完成后看到“完成”字样后可以看到一个 unlocked.pdf的文件,此文件已经完成解密

Linux方法:

同样需要下载python版本3.7及以上,

需要安装pikepdf工具

pip install pikepdf

除此之外,直接运行源代码可能会提示 缺少tkinter模块 :

$ python unpdf_v0.2_linux.py
Traceback (most recent call last):
  File "/home/xyj/LocalProject/unpdf/src/unpdf_v0.2_linux.py", line 1, in <module>
    import tkinter
ModuleNotFoundError: No module named 'tkinter'

deb 系发行版可使用以下两行命令解决:

sudo apt update
sudo apt install python3-tk

arch 系发行版可使用以下命令解决:

sudo pacman -S tk

CentOS 可使用以下命令解决:

sudo yum -y install tkinter

python脚本如下:

import tkinter
from tkinter import filedialog
import pikepdf

# Linux
print('请选择PDF文件。 Please choose PDF.\n')

# 打开一个文件选择对话框
root = tkinter.Tk()
root.withdraw() # 隐藏多余的窗口

# 选择文件路径
filePath = filedialog.askopenfilename()

# 用pikepdf破解,并以unlocked.pdf保存在当前程序所在路径下
pdf = pikepdf.open(filePath)
pdf.save('unloked.pdf')

print('解密完成。 Unloked done.')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/328116.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Matlab交互式的局部放大图

在数据可视化中&#xff0c;很多时候需要对某一区间的数据进行局部放大&#xff0c;以获得对比度更高的可视化效果。下面利用 MATLAB 语言实现一个交互式的局部放大图绘制。 源码自行下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1yItVSinh6vU4ImlbZW6Deg?pwd9d…

【机器学习300问】10、学习率设置过大或过小对训练有何影响?

在上一篇文章中&#xff0c;首次出现了学习率这个词&#xff0c;在这篇文章中我会详细介绍一下它是什么&#xff0c;到底对机器学习的训练有着怎样的影响。 一、学习率是什么&#xff1f; 先来复习一下梯度下降算法&#xff0c;在每次迭代过程中&#xff0c;算法计算目标函数关…

给WordPress网站增加一个带时间的led广告牌

WordPress 后台》外观》小工具》自定义html》添加到合适位置 其他系统可自行添加合适位置 <style type"text/css">.studytextgzbox {background: #F9F9F9; border: 1px solid #999999;margin: 1px;text-align:center; float: left;line-height: 28px;hei…

WordPress回收站自动清空时间?如何关闭回收站或设置自动清理天数?

我们在WordPress后台的文章、页面、评论等页面都可以看到有回收站&#xff0c;意思就是我们不能直接删除某篇文章、页面、评论&#xff0c;而是需要现将它们移至回收站&#xff0c;然后再到回收站永久删除&#xff0c;或等回收站自动清理。 如上图所示&#xff0c;WordPress 6.…

【机组】算术逻辑运算单元实验的解密与实战

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《机组 | 模块单元实验》⏰诗赋清音&#xff1a;云生高巅梦远游&#xff0c; 星光点缀碧海愁。 山川深邃情难晤&#xff0c; 剑气凌云志自修。 ​ 目录 &#x1f33a; 一、 实验目的…

服务器推送数据你还在用 WebSocket么?

当涉及到推送数据时,人们首先会想到 WebSocket。 的确,WebSocket 允许双向通信,可以自然地用于服务器到浏览器的消息推送。 然而,如果只需要单向的消息推送,HTTP 通过服务器发送的事件也有这种功能。 WebSocket 的通信过程如下: 首先,通过 HTTP 切换协议。服务器返回 101 状…

rust获取本地ip地址的方法

大家好&#xff0c;我是get_local_info作者带剑书生&#xff0c;这里用一篇文章讲解get_local_info的使用。 get_local_info是什么&#xff1f; get_local_info是一个获取linux系统信息的rust三方库&#xff0c;并提供一些常用功能&#xff0c;目前版本0.2.4。详细介绍地址&a…

直接写一区! ZOA-PCNN-AT-SVM斑马优化并行卷积-支持向量机融合注意力机制的故障识别程序,特征可视化,实验多!图多!

适用平台&#xff1a;Matlab2023版本及以上 本原创程序提出的ZOA-PCNN-AT-SVM故障识别模型还没有人写&#xff01;在此基础上进一步对参考模型进行多重改进&#xff0c;程序注释清晰&#xff0c;干货满满&#xff0c;下面对文章和程序做简要介绍&#xff01; ①识别模型部分参…

计算机导论10-软件与软件工程

文章目录 软件软件的概念软件的定义软件的特征 软件的保护与授权软件的法律保护软件许可 软件工程软件危机软件危机的概念产生软件危机的原因 软件工程的概念软件工程的定义软件工程基本原理软件工程框架软件工程三要素 软件工程方法学软件工程方法软件工程工具软件工程过程 软…

【RPC】网络通信:哪种网络IO模型最适合RPC框架?

一、背景 RPC是解决进程间通信的一种方式。一次RPC调用&#xff0c;本质就是服务消费者与服务提供者间的一次网络信息交换的过程。服务调用者通过网络IO发送一条请求消息&#xff0c;服务提供者接收并解析&#xff0c;处理完相关的业务逻辑之后&#xff0c;再发送一条响应消息…

AttributeError: module ‘openai‘ has no attribute ‘error‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Flink实战之运行架构

本文章&#xff1a;重点是分析清楚运行架构以及并行度与slot的分配 1、JobManager和TaskManager Flink中的节点可以分为JobManager和TaskManager。 JobManager处理器也称为Master&#xff0c;用于协调分布式任务执行。他们用来调度task进行具体的任务。TaskManager处理器也称…

海思SD3403,SS928/926,hi3519dv500,hi3516dv500移植yolov7,yolov8(9)

上一节yolov8的训练已经完成了,现在要开始做模型的转换了,这里和yolov7方式相似,但是有一些差异,尤其是yolov7的不带NMS部分的输出顺序和yolov8的输出顺序与格式是有差异的。 首先还是要自己手动加入rpn_op,这里包含了filter,sort,nms部分。 我们一个一个看,首先filter.py…

从零开始的源码搭建:详解连锁餐饮行业中的点餐小程序开发

时下&#xff0c;点餐小程序成为了许多餐饮企业引入的一种创新工具&#xff0c;不仅方便了顾客的用餐体验&#xff0c;同时也提高了餐厅的运营效率。本文将详细探讨如何从零开始搭建一个源码&#xff0c;并深入解析连锁餐饮行业中的点餐小程序开发过程。 一、需求分析与规划 在…

运维工具之tmux命令

tmux终端复用器的使用 1.tmux的概念 ​ tmux&#xff0c;“Terminal MultipleXer”,意思是"终端复用器"。是一个可以让人们通过一个窗口操作多个会话的工具&#xff0c;对于经常操作Linux系统的运维人员来说&#xff0c;绝对是一款提高工作效率的利器。 2.tmux能帮…

计算机网络 应用层

文章目录 应用层域名系统 DNS域名系统概述互联网的域名结构域名服务器 文件传送协议FTP 概述FTP 的基本工作原理简单文件传送协议 TFTP 远程终端协议 TELNET万维网 WWW统一资源定位符 URL超文本传送协议 HTTP万维网的信息检索系统 电子邮件电子邮件概述简单邮件传送协议 SMTP邮…

微服务基础设施怎么建设,如何选择微服务框架

微服务基础设施架构全貌 微服务 vs SOA 微服务基础设施优先级 微服务框架核心 模式1-嵌入式SDK式 【优点】 1. 架构简单&#xff0c;天然支持高性能、高可用&#xff1b; 2. 维护简单&#xff0c;无需维护独立的 Proxy 节点。 【缺点】 1. 应用侵入&#xff0c;需要集成 SD…

Leetcode2645. 构造有效字符串的最少插入数

Every day a Leetcode 题目来源&#xff1a;2645. 构造有效字符串的最少插入数 解法1&#xff1a;枚举 数学 word 仅由字母 “a”、“b” 和 “c” 组成。 因此我们只需要每次统计相邻字符之间的编号差再减去 1&#xff08;并进行一定修正&#xff09;&#xff0c;就可以得…

CAN 节点状态转换

CAN节点 按照错误严重程度可分为三种不同的状态 主动错误状态&#xff08;Error Active&#xff09; 被动错误状态&#xff08;Error Passive&#xff09; 总线关闭状态&#xff08;Bus Off&#xff09; 存在两种错误计数器 发送错误计数值 TEC : Transmit Error Counter …

Js-web APIs(一)

目录 Web API 基本认知 • 作用和分类 • 什么是DOM • DOM树 • DOM对象(重要) 获取DOM对象 • 根据CSS选择器来获取DOM元素 (重点) 1.选择匹配的第一个元素 2.选择匹配的多个元素 • 其他获取DOM元素方法&#xff08;了解&#xff09; 操作元素内容 • 对象.innerT…