← ClaudeAtlas

pdf-processing-toolkitlisted

当需要合并/拆分/旋转 PDF、提取文本与表格、生成新 PDF、加水印/加密、对扫描件 OCR 时使用;做用 pypdf/pdfplumber/reportlab 等库与 qpdf/pdftotext 等命令完成批量 PDF 处理并产出文件或结构化数据;不适用于填写 PDF 表单字段(用 pdf-form-filler)。触发词:PDF、合并PDF、提取表格、PDF转文本、OCR、加水印
findscripter/everything-skills · ★ 0 · Data & Documents · score 68
Install: claude install-skill findscripter/everything-skills
## 何时使用 适用: - 合并多份 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