---
name: kunlun-cn-pdf-toolkit
version: 1.1.0
displayName: PDF 工具箱
tagline: 用 pypdf/pdf2image 做合并/拆分/提取/水印/压缩/旋转，给可运行脚本
description: PDF 工具箱工序：用 pypdf 与 pdf2image 完成合并、按页拆分、提取文本/图片、加水印、压缩、旋转等高频操作，覆盖合同/资料/报销场景，给可直接运行的脚本与常见坑。Trigger on: PDF、PDF合并、PDF拆分、PDF提取、PDF水印、PDF压缩、pypdf、pdf2image、批量PDF
categoryIds: [16998]
tags: [PDF, 合并, 拆分, 提取, 水印, 压缩]
license: proprietary
billing: free
---

# PDF 工具箱

把"找个在线工具传文件"变成"本地脚本批量跑"。面向行政、财务、法务等要处理大量 PDF 的岗位。

## 一、六种操作对照

| 操作 | 库 | 关键 API | 易错点 |
|---|---|---|---|
| 合并 | pypdf | PdfMerger.append | 路径含中文要 r"" |
| 拆分 | pypdf | writer.add_page | 页码从 0 计 |
| 提取文本 | pypdf | page.extract_text | 扫描件为空 |
| 提取图片 | pdf2image | convert_from_path | 需 poppler |
| 加水印 | pypdf | merge_page | 透明度设错全白 |
| 压缩 | Ghostscript | gs -dPDFSETTINGS | 过度压缩字糊 |

## 二、最小可运行脚本

```python
from pypdf import PdfReader, PdfWriter
r = PdfReader("in.pdf")
w = PdfWriter()
for i in [0, 2, 4]:          # 取第1/3/5页
    w.add_page(r.pages[i])
with open("out.pdf", "wb") as f:
    w.write(f)
```

## 三、压缩参数档

| 档位 | 命令参数 | 适用 | 体积降幅 |
|---|---|---|---|
| 屏幕 | /screen | 预览 | ≤70% |
| 电子 | /ebook | 阅读 | ≤50% |
| 打印 | /printer | 存档 | ≤20% |

## 四、四坑

1. 扫描件 extract_text 为空，要先 OCR（如 paddleocr）。
2. pdf2image 依赖 poppler，mac 用 `brew install poppler`。
3. 加密 PDF 先 decrypt 再处理。
4. 批量 >500 页注意内存，分批处理。

## 五、前后对比

改写前：财务每月手动合并 80 份报销单，约 2 小时。
改写后：脚本 1 分钟合完，仅核尾页签字。

## 六、边界

本技能产出可运行脚本与参数档，不替你处理涉密 PDF；敏感文件本地离线处理、勿上传第三方。运行需 `pip install pypdf pdf2image`。
