Skip to content

idinging/qpdf-pdf-ops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

qpdf PDF 操作 Skill

基于 qpdf 的 Claude Code skill,提供无损的 PDF 页面级操作 —— 不重新渲染、不栅格化,保留原始内容流。

Quick Install

方式一:npx skills 安装

npx skills add idinging/qpdf-pdf-ops

方式二:Claude Code Plugin 安装

在 Claude Code 里运行:

/plugin marketplace add idinging/qpdf-pdf-ops
/plugin install qpdf-pdf-ops@qpdf-pdf-ops

安装后重启 Claude Code 即可加载。系统需要先装好 qpdf(见下文)。

安装

一、安装 qpdf 命令行工具

sudo apt-get install -y qpdf       # Debian/Ubuntu/WSL
sudo dnf install -y qpdf           # Fedora/RHEL
sudo pacman -S qpdf                # Arch
brew install qpdf                  # macOS
winget install --id QPDF.QPDF -e   # Windows

二、在 Claude Code 中安装本 skill

本仓库符合 Claude Code 官方 plugin marketplace 规范,安装一次即可:

# 1. 添加 marketplace(一次性)
/plugin marketplace add idinging/qpdf-pdf-ops

# 2. 安装 plugin
/plugin install qpdf-pdf-ops@qpdf-pdf-ops

# 3 刷新 plugin 

 /reload-plugins    # 或者新开claude窗口

安装后重启 Claude Code 加载 skill。

已有 Claude Code 用户也可用本地路径加载: claude --plugin-dir ./skills/qpdf-pdf-ops

功能概览

操作 说明 脚本
替换页面 用另一个 PDF 的某一页替换指定页 replace_page.sh
提取页面 按范围提取页面 extract_pages.sh
删除页面 按范围删除页面 delete_pages.sh
合并 PDF 拼接多个 PDF merge_pdfs.sh
拆分 PDF 按页或每 N 页拆分 split_pdf.sh
旋转页面 相对/绝对角度,可指定范围 (直接 qpdf --rotate)
重排页面 倒序、移动页面位置 (直接 qpdf --pages)
插入页面 在指定位置插入页面 (直接 qpdf --pages)
PDF 信息 大小、页数、PDF 版本、加密、完整性 pdf_info.sh
加密 / 解密 加密、解密、修改权限 (直接 qpdf --encrypt / --decrypt)

仓库结构

qpdf-pdf-ops/                          # GitHub repo (= marketplace)
├── .claude-plugin/
│   └── marketplace.json               # marketplace 索引
├── plugin/                            # Claude Code plugin 入口
│   ├── .claude-plugin/
│   │   └── plugin.json                # plugin 元信息
│   └── skills/
│       └── qpdf-pdf-ops/
├── skills/                            # skills.sh 入口(单独目录,方便 npx skills 发现)
│   └── qpdf-pdf-ops/
│       ├── SKILL.md
│       ├── scripts/                   # 7 个封装脚本
│       └── references/                # recipes.md + page-ranges.md
├── skills.sh.json                     # skills.sh 展示配置
├── .github/workflows/
│   └── skill-lint.yml                 # CI 校验
├── bin/
│   └── skill-lint                     # 本地 lint
└── README.md

使用示例

安装并重启 Claude Code 后,触发短语包括(中英文均可):

  • "用 cover.pdf 的第 1 页替换 report.pdf 的第 3 页"
  • "删除 5-7 页" / "去掉最后一页"
  • "把这几个 PDF 合并成一个文件"
  • "旋转第 2 页 90 度" / "把 PDF 倒序"
  • "提取第 3-5 页另存为新 PDF"
  • "把 PDF 拆成单页"
  • "这个 PDF 有密码,帮我解开"

核心原理

大多数操作用一行命令完成:

qpdf PRIMARY.pdf --pages SRC RANGE ... -- OUT.pdf
  • PRIMARY.pdf 提供文档级元数据(大纲、标签等)
  • --empty 代替主文件可从零开始
  • . 是主文件的简写
  • 每个 (文件, 范围) 对按顺序贡献页面到输出
  • 末尾的 -- 必须保留

详细语法见 plugins/qpdf-pdf-ops/skills/qpdf-pdf-ops/references/recipes.mdpage-ranges.md

给贡献者

# 本地 lint
./bin/skill-lint

# 也可指定单个 skill 目录
./bin/skill-lint plugins/qpdf-pdf-ops/skills/qpdf-pdf-ops

PR 提交时 .github/workflows/skill-lint.yml 会自动跑 lint + qpdf 脚本 smoke test。

注意事项

  • 所有操作生成新文件,不会覆盖原始 PDF(除非显式 --replace-input
  • 文件路径包含中文或其他特殊字符时,shell 命令中需加引号
  • 推荐使用相对旋转角度(+90-90)而非绝对角度
  • 加密 PDF 操作前先询问用户密码,不要猜测

友链

  • linux.do — 技术交流社区 - 学AI,上L站!

许可

MIT

About

Lightweight PDF manipulation skill powered by qpdf, supporting page extraction, replacement, insertion, merging, and reordering for AI agents and automated document workflows.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages