跳到主要内容

PDF解密

可调用节点 v1.1.0

PDF解密批量解除密码保护 | 基于 pdfcpu,免密优先自动试解,按需使用打开密码,支持生成副本(_解密后缀)/覆盖原文件,解密后自动校验,支持右键/快捷键/定时任务一键批量解密

脚本能力

直接启动支持 右键启动支持 快捷键启动支持 超级复制启动不支持 定时任务支持 可被其他脚本调用 依赖其他脚本 图形化启动界面支持

基于 pdfcpu 批量解除 PDF 密码保护,自动先免密试解,仅当文件需要密码时才自动使用你输入的密码,解密后自动校验确认已解除保护。支持生成副本(默认 _解密 后缀)或覆盖原文件。启动界面由「不忙脚本盒子」自动生成,无需手动配置。


✨ 核心特性

  • 自动免密试解:先尝试无密码解密(免密打开/仅权限受限的文件无需密码即可解除保护)
  • 按需使用密码:仅当文件确实需要打开密码时才自动使用你填写的密码,其余文件完全无感
  • 密码选填:密码留空也能正常解密免密类文件
  • 一键批量:右键选中多个 PDF,全部自动解密
  • 生成副本:默认生成 _解密 副本,绝不覆盖原文件(可切换为覆盖模式)
  • 自动校验:解密后程序自动校验(validate 通过 + 权限列表显示 Full access),确认真实解除保护
  • 未加密跳过:对未加密的 PDF 自动识别并跳过,不会报错
  • 多触发方式:支持卡片启动、右键菜单、全局快捷键、定时任务
  • 可作节点:可被其他盒子脚本联动调用,回传解密结果
  • 基于 pdfcpu:成熟 PDF 引擎,处理高效稳定

🎬 脚本演示

PDF解密演示


📦 安装方法

本脚本的运行环境、依赖组件及启动界面均依赖「不忙脚本盒子」,建议仅通过盒子安装和使用本脚本。

前置条件:安装好 不忙脚本盒子

  • 打开盒子 → 脚本市场 → 搜索 「PDF解密」
  • 点击「安装」

🚀 使用方式

安装后,盒子会在启动脚本前自动弹出配置窗口,填写「输出方式」与「打开密码(选填)」后点击「执行」即可。

  • 直接启动

    • 打开「不忙脚本盒子」,点击「PDF解密」卡片
    • 在配置窗口点击「源文件」右侧的选择按钮,选中一个或多个 PDF
    • 选择输出方式、按需填写打开密码,点击「执行」
  • 右键启动(日常使用)

    • 在文件管理器中选中一个或多个 PDF 文件
    • 右键点击 → 选择「PDF解密」
    • 在弹出的配置窗口确认输出方式、按需填写密码,点击「执行」
  • 快捷键启动

    • 为脚本设置全局快捷键
    • 选中 PDF 文件后按下快捷键,在配置窗口确认后执行
  • 定时任务

    • 在盒子的定时任务中新建任务,选择「PDF解密」
    • 在任务表单中填写「源文件」(可留空则每次运行时手动补选)与「输出方式」
    • 若待处理文件需要打开密码,请在任务表单中填写「打开密码」
    • 到点后脚本无人值守运行,自动批量解密

💡 使用提示

  • 自动免密试解:程序先尝试无密码解密;对「仅权限受限、免密打开」的 PDF(权限密码加密)无需输入任何密码即可解除保护
  • 密码按需使用:仅当 PDF 需要打开密码时才使用所填密码;填错或未填时该文件会报错并继续处理其它文件
  • 密码限制:pdfcpu 不支持密码包含空格,密码含空格时会被拦截
  • 未加密文件:自动识别并跳过,提示「文件未加密,无需解密」
  • 重复解密:解密后的文件为无保护 PDF,可正常打印/复制,再次解密会被识别为未加密而跳过
  • 输出方式:默认生成 _解密 副本;选择「覆盖原文件」将直接改写原文件,请谨慎使用

🧩 节点脚本(开发者阅读)

本脚本声明为节点,可被其他盒子脚本通过 /api/link 联动调用:

import json, sys, requests

payload = json.load(open(sys.argv[1], encoding="utf-8"))
env = payload["environment"]

r = requests.post(f"{env['api_base']}/api/link", json={
    "script_id": "f9c0d083-71c2-4f80-af04-a59e0b1bf798",
    "data": {"target_paths": ["C:/docs/a.pdf"]},   # 键名取本脚本 inputs[0].name
    "params": {"mode": "copy", "password": ""},    # 未传的用 TOML 默认值
}, timeout=3600)
body = r.json()
result = body["result"]                            # 本脚本写入的信封

print(result["summary"])        # 如:成功 1 个
print(result["output_paths"])   # 解密成功后的文件路径列表

回传信封字段(顶层平铺):

类型 说明
code int 0 无失败;1 存在失败项(成功项仍会返回)
msg str 结果说明
output_paths list 解密成功后的 PDF 文件路径列表
summary str 结果摘要,如 成功 3 个 · 跳过 1 个 · 失败 0 个

节点调用时脚本静默运行、不弹窗、不等待用户操作。


🖥️ 环境要求

项目 要求
操作系统 Windows 10+(64 位)
运行环境 Python 3.8+、pdfcpu

免责声明

所有脚本由用户通过开源仓库自行发布。本站仅提供索引服务,"不忙脚本盒子"仅提供展示与安装服务。请在使用前仔细核实脚本内容,作者不对其安全性、准确性及适用性作任何保证。

脚本推荐