Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Pdf Processing Toolkit

ASecurity

当需要合并/拆分/旋转 PDF、提取文本与表格、生成新 PDF、加水印/加密、对扫描件 OCR 时使用;做用 pypdf/pdfplumber/reportlab 等库与 qpdf/pdftotext 等命令完成批量 PDF 处理并产出文件或结构化数据;不适用于填写 PDF 表单字段(用 pdf-form-filler)。触发词:PDF、合并PDF、提取表格、PDF转文本、OCR、加水印

3 stars
0 votes
0 copies
2 views
Added 9/19/2026
ai-agentspythonbash

Works with

cursorcli

Security Analysis

A92/100
mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned 9/19/2026

$npx -y skills add findscripter/everything-skills --skill pdf-processing-toolkit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pdf Processing Toolkit?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Pdf Processing Toolkit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/findscripter-pdf-processing-toolkit/badge)](https://www.skillsdirectory.com/skills/findscripter-pdf-processing-toolkit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: pdf-processing-toolkit
title: PDF 处理工具箱
description: 当需要合并/拆分/旋转 PDF、提取文本与表格、生成新 PDF、加水印/加密、对扫描件 OCR 时使用;做用 pypdf/pdfplumber/reportlab 等库与 qpdf/pdftotext 等命令完成批量 PDF 处理并产出文件或结构化数据;不适用于填写 PDF 表单字段(用 pdf-form-filler)。触发词:PDF、合并PDF、提取表格、PDF转文本、OCR、加水印
domain: 文书/office
triggers: [合并PDF, 拆分PDF, PDF提取文本, PDF提取表格, 生成PDF, PDF加水印, PDF加密, 扫描件OCR, 旋转PDF页面, pdfplumber, qpdf, reportlab]
tags: [pdf, documents, pypdf, pdfplumber, reportlab, qpdf, ocr]
level: 进阶
status: stable
agents: [claude-code, codex, cursor, gemini-cli]
tools: [python, pypdf, pdfplumber, reportlab, qpdf, poppler-utils, pytesseract]
requires: []
related: [pdf-form-filler, markdown-to-docx, pptx-document-processing, professional-proofreader]
combines_with: [pdf-form-filler, citation-management]
license: MIT
source: sickn33/agentic-awesome-skills
source_license: MIT
---
## 何时使用

适用:

- 合并多份 PDF、拆分为单页、旋转页面、重排页。
- 提取正文文本(含保留版面)、抽取表格导出为 DataFrame/Excel。
- 从零生成 PDF(文本、表格、多页报告)。
- 加水印、设密码加密、解密去密码、抽取内嵌图片。
- 扫描件/纯图 PDF 走 OCR 转可检索文本。

不该用的边界:

- 填写已有 AcroForm/XFA 表单字段(勾选框、文本框、下拉)→ 用 `pdf-form-filler`,本技能不覆盖表单字段写入。
- 需要像素级版式还原的复杂排版生成(杂志/手册)→ reportlab 适合结构化文档,重设计稿应改用专业排版工具。
- 纯文本/Markdown 落地为 Word/PPT → 用 `markdown-to-docx` 等排版技能。

## 步骤 / 指令

1. 先判类型:可选文本 PDF 还是扫描件?`pdftotext input.pdf -` 若几乎无文本则视为扫描件,转 OCR 流程。
2. 选工具:拆分/合并/旋转/加密 → `pypdf` 或命令行 `qpdf`;提取文本/表格 → `pdfplumber`;生成 → `reportlab`;OCR → `pdf2image`+`pytesseract`。简单批处理优先命令行(更快、无需写脚本)。
3. 执行操作(见示例),始终输出到新文件,不覆盖源 PDF。
4. 校验:处理后复读页数/关键文本,表格抽取后检查行列对齐与表头。
5. 加密/解密前确认有权限处理该文档。

## 示例

合并 / 拆分(pypdf):

```python
from pypdf import PdfReader, PdfWriter

# 合并
writer = PdfWriter()
for f in ["doc1.pdf", "doc2.pdf"]:
    for page in PdfReader(f).pages:
        writer.add_page(page)
with open("merged.pdf", "wb") as out:
    writer.write(out)

# 拆分为单页
reader = PdfReader("input.pdf")
for i, page in enumerate(reader.pages):
    w = PdfWriter(); w.add_page(page)
    with open(f"page_{i+1}.pdf", "wb") as out:
        w.write(out)
```

旋转 / 加密(pypdf):

```python
page = reader.pages[0]; page.rotate(90)   # 顺时针 90°
writer.encrypt("userpwd", "ownerpwd")     # 设密码
```

提取表格 → Excel(pdfplumber):

```python
import pdfplumber, pandas as pd
dfs = []
with pdfplumber.open("document.pdf") as pdf:
    for page in pdf.pages:
        for t in page.extract_tables():
            if t:
                dfs.append(pd.DataFrame(t[1:], columns=t[0]))
if dfs:
    pd.concat(dfs, ignore_index=True).to_excel("tables.xlsx", index=False)
```

提取文本(pdfplumber:`page.extract_text()`;命令行:`pdftotext -layout input.pdf out.txt`)。

命令行批处理(qpdf / poppler):

```bash
qpdf --empty --pages a.pdf b.pdf -- merged.pdf        # 合并
qpdf input.pdf --pages . 1-5 -- p1-5.pdf              # 取页
qpdf input.pdf out.pdf --rotate=+90:1                 # 旋转第 1 页
qpdf --password=PW --decrypt enc.pdf dec.pdf          # 去密码
pdfimages -j input.pdf imgprefix                      # 抽图为 jpg
```

生成 PDF(reportlab,多页报告):

```python
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Paragraph, PageBreak
from reportlab.lib.styles import getSampleStyleSheet
s = getSampleStyleSheet()
doc = SimpleDocTemplate("report.pdf", pagesize=letter)
doc.build([Paragraph("标题", s['Title']),
           Paragraph("正文…", s['Normal']), PageBreak(),
           Paragraph("第 2 页", s['Heading1'])])
```

扫描件 OCR(pip install pytesseract pdf2image,需系统装 tesseract):

```python
import pytesseract
from pdf2image import convert_from_path
text = "".join(pytesseract.image_to_string(img, lang="chi_sim+eng")
               for img in convert_from_path("scanned.pdf"))
```

加水印(pypdf:对每页 `page.merge_page(watermark_page)`)。

## 速查表

| 任务 | 首选 | 关键调用 |
|---|---|---|
| 合并 | pypdf / qpdf | `writer.add_page` / `qpdf --empty --pages` |
| 拆分 | pypdf | 每页一文件 |
| 提取文本 | pdfplumber | `page.extract_text()` |
| 提取表格 | pdfplumber | `page.extract_tables()` |
| 生成 | reportlab | Canvas / Platypus |
| OCR 扫描件 | pytesseract | 先 `convert_from_path` 转图 |
| 填表单 | pdf-form-filler | 见该技能 |

## 注意事项

- 始终另存新文件,批量时文件名带唯一键,避免覆盖。
- 中文文本:reportlab 需注册中文字体,OCR 须装中文语言包并传 `lang="chi_sim"`,否则乱码/丢字。
- pdfplumber 抽表对有边框规整表格效果好;无线表/合并单元格易错位,需人工核对行列。
- 扫描件直接 `extract_text()` 返回空属正常——必须走 OCR。
- 加密/去密码涉及版权与授权,处理外部文档前确认有权操作。
- 命令行工具非内置:qpdf/pdftotext/pdfimages 来自 poppler-utils 与 qpdf 包,pytesseract 依赖系统 tesseract,使用前确认已安装。

## 互见

- requires:无。
- related:`audio-to-markdown-transcriber`(音视频转写,与 PDF 同属内容抽取场景)。
- combines_with:`pdf-form-filler`(需要填写 PDF 表单字段时切到它,本技能负责合并/拆分/抽取/生成);`csv-data-cleaner`(把抽取出的表格 CSV 喂给它做清洗规范化)。

---

采编自 sickn33/antigravity-awesome-skills(MIT),原技能 `pdf-official`,已适配重写为中文版本。

Attribution

findscripterfindscripter
View sourceSee grades on GitHubMore from findscripter →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698461 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →