# PDF

> PDF 综合工具：提取文本与表格、生成/合并/拆分 PDF、处理表单。当需要填写 PDF 表单、批量处理/生成或分析 PDF 时使用。

- Skill: `kunhai-88/pdf` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kunhai-88/pdf`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kunhai-88/pdf/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- License: MIT
- Author: kunhai-88 (https://skillmd.com/u/kunhai-88)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/kunhai-88/pdf

---


# PDF 处理指南

## 概述

本指南介绍使用 Python 库与命令行进行 PDF 处理的常用操作。高级功能、JavaScript 库与填表流程见原技能 reference.md / forms.md。

## 快速开始

```python
from pypdf import PdfReader, PdfWriter

reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")

text = ""
for page in reader.pages:
    text += page.extract_text()
```

## Python 库

### pypdf：基础操作

**合并**：`PdfWriter` 循环读入多个 PDF，`add_page` 后 `write` 输出。  
**拆分**：遍历 `reader.pages`，每页单独 `PdfWriter` 写出。  
**元数据**：`reader.metadata`（title, author, subject, creator）。  
**旋转**：`page.rotate(90)` 后写入新 PDF。

### pdfplumber：文本与表格提取

- **文本**：`pdfplumber.open()` 遍历 `pdf.pages`，`page.extract_text()`。
- **表格**：`page.extract_tables()`，可转 `DataFrame` 再导出 Excel。

### reportlab：生成 PDF

- **简单**：`canvas.Canvas` + `drawString`、`line` 等，最后 `save`。
- **多页/富文本**：`SimpleDocTemplate`、`Paragraph`、`Spacer`、`PageBreak`，使用 `getSampleStyleSheet`。

## 何时使用

- 提取 PDF 文本或表格
- 合并、拆分、旋转页面
- 程序化生成 PDF 报告
- 填写或解析 PDF 表单（见 forms.md）

