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.')

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

热压机PLC数据采集远程监控物联网解决方案

热压机PLC数据采集远程监控物联网解决方案 随着工业4.0时代的到来&#xff0c;智能制造已经成为制造业发展的重要方向。在热压机领域&#xff0c;PLC数据采集远程监控物联网解决方案为提高生产效率、降低维护成本、优化生产工艺提供了有效的手段。 一、热压机PLC数据采集远程…

canvas绘制美队盾牌

查看专栏目录 canvas示例教程100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

【Rust学习】安装Rust环境

本笔记为了记录学习Rust过程&#xff0c;内容如有错误请大佬指教 使用IDE&#xff1a;vs code 参考教程&#xff1a;菜鸟教程链接: 菜鸟教程链接: Rust学习 Rust入门安装Rust编译环境Rust 编译工具 构建Rust 工程目录 Rust入门 安装Rust编译环境 因为我已经安装过VSCode了&am…

解决若依Vue3前后端分离---路由切换时显示白屏

解决若依Vue3前后端分离---路由切换时显示白屏 1.问题重述 解决基于Vue3若依前后端分离项目中出现的路由正常切换但是就是不显示数据的问题&#xff0c;也就是不发起网络请求的问题。 找到如下位置中AppMain.vue文件 将除了css中的代码进行替换成如下的代码。 <template&g…

kylin集群负载均衡(kylin3,hbaseRIF问题)

hbase历险记 目录 hbase历险记 寻找问题 分析原因 解决方案 方案1&#xff08;资源问题、失败&#xff09; 方案2&#xff08;成功&#xff09; 寻找问题 不知道你是不是有这样的疑惑。我kylin是个单机&#xff0c;我使用的hbase是个集群&#xff0c;但内存全在某一台机…

vue2使用qiankun微前端(跟着步骤走可实现)

需求&#xff1a;做一个vue2的微前端&#xff0c;以vue2为主应用&#xff0c;其他技术栈为子应用&#xff0c;比如vue3&#xff0c;本文章只是做vue2一套的微前端应用实现&#xff0c;之后解决的一些问题。vue3子应用可以看我另一篇vue3vitets实现qiankun微前端子应用-CSDN博客…

前端八股文(性能优化篇)

目录 1.CDN的概念 2.CDN的作用 3.CDN的原理 4.CDN的使用场景 5.懒加载的概念 6.懒加载的特点 7.懒加载的实现原理 8.懒加载与预加载的区别 9.回流与重绘的概念及触发条件 &#xff08;1&#xff09;回流 &#xff08;2&#xff09;重绘 10. 如何避免回流与重绘&#…

Deep MultimodalLearningA survey on recent advances and trends

深度多模态学习&#xff1a;对近期进展和趋势的综述 深度学习的成功已经成为解决越来越复杂的机器学习问题的催化剂&#xff0c;这些问题通常涉及多个数据模态。我们回顾了深度多模态学习的最新进展&#xff0c;并突出了该活跃研究领域的现状&#xff0c;以及存在的差距和挑战…

【动态规划】【C++算法】639 解码方法 II

作者推荐 【矩阵快速幂】封装类及测试用例及样例 涉及知识点 动态规划 字符串 滚动向量 LeetCode 639. 解码方法 II 一条包含字母 A-Z 的消息通过以下的方式进行了 编码 &#xff1a; ‘A’ -> “1” ‘B’ -> “2” … ‘Z’ -> “26” 要 解码 一条已编码的消息…

【已解决】c语言const/指针学习笔记

本博文源于笔者正在复习const在左与在右&#xff0c;指针优先级、a,&a,*a的区别。 1、const在左与在右 int const *p const int *p int * const p int const * const p const int * const p* 在const右边&#xff0c;指向的数据不可以改变&#xff0c;可以改变地址 * 在c…

不同打包工具下的环境变量配置方式对比

本文作者为 360 奇舞团前端开发工程师 天明 前言 在现代的JavaScript应用程序开发中&#xff0c;环境变量的配置是至关重要的。不同的应用场景和部署环境可能需要不同的配置&#xff0c;例如开发、测试和生产环境。最常见的需求是根据不同的环境&#xff0c;配置如是否开启sour…

数据分析中常用的指标或方法

一、方差与标准差二、协方差三、皮尔逊系数四、斯皮尔曼系数 一、方差与标准差 总体方差 V a r ( x ) σ 2 ∑ i 1 n ( x i − x ˉ ) 2 n ∑ i 1 n x i 2 − n x ˉ 2 n E ( x 2 ) − [ E ( x ) ] 2 Var(x)\sigma^2\frac {\sum\limits_{i1}^{n} (x_i - \bar{x})^2} {n…

使用 Elasticsearch 和 LlamaIndex 进行高级文本检索:句子窗口检索

2023 年是检索增强生成 (RAG) 的一年&#xff0c;人们探索了许多用例&#xff0c;并使用该技术开发了数百种产品。 从 Q/A 聊天机器人到基于上下文的代理&#xff0c;RAG 的使用一直是 LLM 申请快速增长的主要因素。 支持不断发展的社区以及 Langchain 和 LlamaIndex 等强大框架…

【Java SE】类和对象详解

文章目录 1.什么是面向对象2. 类的定义和使用2.1 简单认识类2.2 类的定义格式 3. 类的实例化3.1 什么是实例化3.1.1 练习&#xff08;定义一学生类&#xff09; 3.2 类和对象的说明 4. this 引用5. 构造方法6. 对象的初始化6.1 默认初始化6.2 就地初始化 7. 封装7.1 封装的概念…

spingboot 集成identityserver4身份验证

一、新建项目&#xff1a;com.saas.swaggerdemo 详情见&#xff1a;spring-boot2.7.8添加swagger-CSDN博客 在之前项目基础上添加如下依赖 <dependency><groupId>com.nimbusds</groupId><artifactId>nimbus-jose-jwt</artifactId><version&…

MATLAB - 为机械臂路径选择轨迹

系列文章目录 前言 本示例概述了机器人系统工具箱™中可用的轨迹类型。在机械手运动、规划和控制应用中&#xff0c;必须为机器人选择轨迹。本示例有三个主要部分。第一部分展示了机械手使用的轨迹类型&#xff0c;第二部分演示了生成轨迹的功能&#xff0c;最后一部分则展示了…

hadoop-common: CMake failed with error code 1

问题 在编译hadoop源码时遇到如下错误 hadoop-common: CMake failed with error code 1 看了这个错误表示一脸懵逼 排查 在mvn 的命令中增加 -X 和 -e mvn clean package -e -X -Pdist,native -DskipTests -Dmaven.javadoc.skip -Dopenssl.prefix/usr/local/bin/openssl 在…

CentOs7.8安装原生Jenkins2.38教程

CentOs7.8安装Jenkins教程 前提&#xff1a;1、下载安装包2、安装&#xff1a;3、检验是否安装成功&#xff1a;4、查询java路径5、修改配置文件6、创建jenkins用户7、给jenkins用户授权8、开放防火墙端口9、运行和其他jenkins相关命令10、异常情况10.1 提示超时&#xff0c;查…

Linux之kernel(20)kdump支持

Linux之kernel(21)kdump介绍 Author&#xff1a;OnceDay Date&#xff1a;2024年1月14日 漫漫长路&#xff0c;有人对你微笑过嘛… 参考文档&#xff1a; 3.3.2 内核态调测工具&#xff1a;kdump&crash——kdump - 知乎 (zhihu.com)Kernel crash dump | Ubuntu[Linux]K…

工业企业能源管理平台,可以帮助企业解决哪些方面的能源问题?

随着全球工业化进程的加快&#xff0c;工业企业在生产经营过程中消耗的能源也越来越庞大。能源成本的上升和环境保护的压力使得工业企业对能源管理的重要性有了深刻的认识。为了提高能源利用效率、降低能源消耗、减少环境污染&#xff0c;工业企业在能源管理方面迫切需要一套规…