PDF 处理·合并拆分提取·免费版

SKILL效率
效率 未标注权限 许可证不明确
安装这个技能

原创免费技能(不依赖任何专有实现)。面向中文办公场景,用开源库处理 PDF:合并/拆分/旋转、提取文本与表格、加水印、填充表单、加密解密、扫描件 OCR、以及用 reportlab 从头生成 PDF。免费版,不引用任何付费端点。

一句话选型结论

按资料字段整理

PDF 处理·合并拆分提取·免费版是效率类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类效率 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_d4933a3c/pdf-free
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

效率
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_d4933a3c仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791680890
正文体量8.9 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
整理待办与日程

把零散任务收进清单,排出优先级。

批量处理重复任务

把固定动作做成模板,重复执行。

把流程写成清单

把口头流程整理成可复用的步骤。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在效率场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
PDF 处理·合并拆分提取·免费版当前 未标注权限 未标注 未标注 未标注 有
Nano PDF 文档 联网访问 ClawHub 市场 424.9 万 OpenClaw 有
自动更新程序 浏览器控制 ClawHub 市场 296.4 万 OpenClaw 有
Gemini 助手 联网访问 ClawHub 市场 254.7 万 OpenClaw 有
word DOCX 文档 联网访问 ClawHub 市场 239.6 万 OpenClaw 有
Excel XLSX 前端 联网访问 ClawHub 市场 227.0 万 OpenClaw 有

SKILL.md 全文

8.9 KB
模型实际读到的说明书原文,来自技能仓库

PDF 处理·免费版

原创免费技能。用开源库 pypdf / reportlab / pdfplumber / pytesseract 处理 PDF:合并拆分、文本表格提取、水印、表单填充、加密、OCR 与生成。所有指令均为本技能原创,仅依赖开源库。

红线(不可违反)

  1. 不泄密:处理含个人/商业敏感信息的 PDF 时,输出仅在用户指定路径,不在日志/对话里粘贴敏感内容
  2. 不编造内容:提取结果如实反映原文,不臆改
  3. 不引导付费:本技能为免费版,不引用任何付费端点
  4. 可运行交付:脚本基于真实开源 API,能直接跑
  5. OCR 标来源:OCR 结果是识别近似值,交付时提示「OCR 文本可能含识别误差,关键处请核对原件」

何时使用

  • 合并/拆分/旋转 PDF
  • 提取文本或表格(做台账、存档)
  • 加水印、加密解密
  • 填写 PDF 表单
  • 扫描件 OCR 转可搜索
  • 用 reportlab 从头生成 PDF(报告/证书/单据)

反触发:要编辑成可改写的 Word → 先提取再转 Word 技能;只是预览 → 用 pdftotext 即可。

职责边界

  • 本技能负责:上述 PDF 操作与生成
  • 本技能不负责:破解受版权保护且无权处理的加密文件、伪造签章

5 分钟上手(复制即出成品)

下面这段脚本独立可跑,pip install pypdf pdfplumber reportlab 后直接执行,不需要任何现成 PDF——
它自己造输入,然后走完一条完整流水线:生成 → 合并 → 叠中文水印 → 提文字 → 抽表格 → 加密。

# RUN: fixture=empty
from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.cidfonts import UnicodeCIDFont

pdfmetrics.registerFont(UnicodeCIDFont("STSong-Light"))   # reportlab 自带的中文字体

# ---- 1) 造输入:一份带完整网格线的表格页 + 一份纯文字页 ----
def make(name, title, rows=None):
    c = canvas.Canvas(name, pagesize=A4)
    c.setFont("Helvetica-Bold", 16); c.drawString(50, 800, title)
    if rows:
        XS, Y0, DY = [50, 150, 250, 350], 740, 30
        for r_i, row in enumerate(rows):
            x = 60
            for v in row:
                c.setFont("Helvetica-Bold" if r_i == 0 else "Helvetica", 11)
                c.drawString(x, Y0 - r_i * DY - 20, str(v)); x += 100
        # 横线 + 竖线都要画,缺竖线 pdfplumber 就拼不出格子
        for i in range(len(rows) + 1):
            c.line(XS[0], Y0 - i * DY, XS[-1], Y0 - i * DY)
        for x in XS:
            c.line(x, Y0, x, Y0 - len(rows) * DY)
    c.showPage(); c.save()

make("a.pdf", "Sales Report", [["Region", "Q1", "Q2"], ["East", 12, 19], ["West", 5, 9]])
make("b.pdf", "Notes")

# ---- 2) 合并 ----
from pypdf import PdfReader, PdfWriter, Transformation
w = PdfWriter()
for f in ["a.pdf", "b.pdf"]:
    for pg in PdfReader(f).pages:
        w.add_page(pg)
with open("merged.pdf", "wb") as o: w.write(o)
print("合并页数:", len(PdfReader("merged.pdf").pages))

# ---- 3) 中文水印页 ----
wc = canvas.Canvas("wm.pdf", pagesize=A4)
wc.setFillAlpha(0.18)
wc.setFont("STSong-Light", 48)
wc.saveState(); wc.translate(300, 420); wc.rotate(45)
wc.drawCentredString(0, 0, "机密"); wc.restoreState()
wc.showPage(); wc.save()

# ---- 4) 叠加到每一页(带旋转/透明必须用 merge_transformed_page)----
wm = PdfReader("wm.pdf").pages[0]
w2 = PdfWriter()
for pg in PdfReader("merged.pdf").pages:
    pg.merge_transformed_page(wm, Transformation().rotate(0))
    w2.add_page(pg)
with open("watermarked.pdf", "wb") as o: w2.write(o)

# ---- 5) 提取文字 ----
txt = "\n".join(p.extract_text() for p in PdfReader("watermarked.pdf").pages)
print("文字含 'Sales Report':", "Sales Report" in txt, "| 含水印 '机密':", "机密" in txt)

# ---- 6) 抽表格(pdfplumber 默认按线条找格子)----
import pdfplumber
with pdfplumber.open("a.pdf") as pdf:
    tables = pdf.pages[0].extract_tables()
print("抽到表格:", tables)

# ---- 7) 加密 / 解密 ----
w3 = PdfWriter()
for pg in PdfReader("merged.pdf").pages:
    w3.add_page(pg)
w3.encrypt("userpass", "ownerpass")
with open("encrypted.pdf", "wb") as o: w3.write(o)
rr = PdfReader("encrypted.pdf")
print("是否加密:", rr.is_encrypted)
rr.decrypt("userpass")          # pypdf 6.x 返回 PasswordType 枚举,别对它 len()
print("解密后页数:", len(rr.pages))
print("已生成 merged.pdf / watermarked.pdf / encrypted.pdf")

这段脚本里最容易踩的三个坑

  1. 抽不到表格多半是线没画全:pdfplumber 默认 lines 策略靠横竖线交叉找格子,
    只画横线不画竖线 → extract_tables() 返回 []。真没有线时改用
    {"vertical_strategy": "text", "horizontal_strategy": "text"}
  2. 中文水印要注册 CID 字体:UnicodeCIDFont("STSong-Light"),直接用 Helvetica 写中文会变黑块
  3. 叠加水印用 merge_transformed_page 不是 merge_page:前者才支持旋转/缩放,
    且 decrypt() 在 pypdf 6.x 返回枚举,不要拿它当列表取长度

主流程

常用参考:references/snippets.md(合并/拆分/旋转/抽表/水印/加密/OCR 单文件操作)、references/batch.md(批量流水线、加密跳过、表单盘点与填值)。

第 1 步:判断任务类型

任务 主库
合并/拆分/旋转/水印/加密 pypdf
提取文本/表格 pdfplumber
从头生成 reportlab
扫描件 OCR pytesseract + pdf2image

质检闸 1:任务类型不明时先确认,选错库会返工。

第 2 步:执行

  • 合并:PdfWriter 逐页 add_page
  • 提取表格:pdfplumber extract_tables() → 可转 DataFrame/Excel
  • 生成:reportlab Platypus(标题/正文/表格/分页);禁止用 Unicode 上下标字符,改用 <sub>/<super> 标签
  • OCR:convert_from_path → image_to_string,逐页拼接

质检闸 2:生成 PDF 用 Platypus 结构化,避免坐标硬编码导致错位;上下标用标签。

第 3 步:校验

  • 合并/拆分后页数正确
  • 提取文本用 pdftotext -layout 抽查与原文一致
  • 生成 PDF 转图目检排版

质检闸 3:结果正确、无乱码再交付。

第 4 步:自检清单

  • [ ] 操作类型与所用库匹配
  • [ ] 合并/拆分页数正确
  • [ ] 提取文本/表格忠实原文
  • [ ] 生成 PDF 排版正常、无上下标黑块
  • [ ] OCR 结果已提示「可能含误差」
  • [ ] 敏感信息未外泄
  • [ ] 无付费引导话术残留
  • [ ] 文件可正常打开

失败降级

  • 库未装 → 对应 pip install pypdf pdfplumber reportlab pytesseract pdf2image
  • OCR 依赖缺失 → 提示安装 Tesseract + 中文语言包
  • 加密文件无权限 → 说明无法处理并建议合法途径
  • 复杂表单 → 用 pdf-lib 思路,但优先 pypdf

依赖

pypdf、pdfplumber、reportlab(均 BSD/MIT)、可选 pytesseract+pdf2image(OCR)、poppler-utils(命令行提取)。无专有组件。

相关技能推荐

  • ppt-free — AI 一键生成 PPT / 幻灯片 / 演示文稿(.pptx):工作总结、汇报、路演、课件、产品介绍。内置版式配色与图表规范,中文排版,开源
  • excel-free — Excel 表格自动生成与处理(.xlsx):报表、台账、预算、数据清洗、图表可视化。支持公式、条件格式、多 Sheet,中文财务配色,开源
  • cad-free — CAD 建模 / Mechanical Design:开源参数化建模与工程图 — 零件建模、标准件库、装配体、尺寸驱动、STEP/STL/D
  • sheetmetal-free — 钣金设计与展开:K 因子与折弯扣除计算、展开长度推导、折弯半径与最小孔边距规则、工艺缺口与让位、DXF 展开图输出与下料清单

致谢

本技能为原创,仅使用开源库。与任何厂商的专有 PDF 技能无隶属、无复制关系。

常见问题

5 问
答案由本站依据条目字段整理
PDF 处理·合并拆分提取·免费版怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_d4933a3c/pdf-free。安装方式为未标注。装完刷新技能列表或重开客户端。

PDF 处理·合并拆分提取·免费版支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

PDF 处理·合并拆分提取·免费版权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

PDF 处理·合并拆分提取·免费版收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

PDF 处理·合并拆分提取·免费版用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。