全面的PDF处理工具包,支持提取文本和表格、创建新PDF、合并/拆分文档及处理表单。由evolink.ai提供支持。
PDF 工具包
功能概述
PDF 工具包是一项面向实际任务的技能,主要用于用于提取文本和表格的 PDF 操作工具包, 创建新的 PDF 文档、 合并/ 分割文档和处理表格;由 Evolink.ai 授权;
核心要点
- 使用此工具。
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
使用与执行
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
PDF Toolkit
功能全面的 PDF 处理工具包,支持文本与表格提取、新建 PDF、文档合并/拆分,以及表单处理。
由 Evolink.ai 提供技术支持
适用场景
当您需要执行以下操作时,请使用本技能:
- 从 PDF 文档中提取文本或表格
- 将多个 PDF 合并为一个文件
- 将 PDF 拆分为独立页面
- 以编程方式创建新 PDF
- 填写 PDF 表单
- 添加水印或旋转页面
- 提取 PDF 元数据或图像
使用方法
本技能为纯指令型技能。Claude 将调用下方所述的 Python 库及命令行工具来执行 PDF 操作。
⚠️ 前置依赖:
执行任何任务前,Claude 应首先确认所需 Python 库是否已安装。若缺失,请指导用户运行以下命令:
pip install pypdf pdfplumber reportlab pytesseract pdf2image
Python 库
pypdf — 基础操作(合并、拆分、旋转、加密)
pdfplumber — 保留版式结构的文本与表格提取
reportlab — 从零开始生成 PDF
pytesseract + pdf2image — 针对扫描版 PDF 的 OCR 支持
命令行工具
pdftotext(poppler-utils)— 提取文本
qpdf — 合并、拆分、旋转、解密 PDF
pdftk — 另一种 PDF 操作工具
配置说明
EvoLink API(可选)
如需启用 AI 驱动的 PDF 分析与处理能力,请配置 EvoLink API 密钥:
export EVOLINK_API_KEY="your-key-here"
默认模型:claude-opus-4-6(无需额外配置)。
如需切换至其他模型,请执行:
export EVOLINK_MODEL="claude-sonnet-4-5-20250929"
更多可用模型请参阅官方文档。
👉 免费获取 API 密钥
Python 库
本技能提供标准 Python PDF 库的使用指导。基础操作无需额外配置。
示例代码
从 PDF 中提取文本
from pypdf import PdfReader
reader = PdfReader("document.pdf")
text = ""
for page in reader.pages:
text += page.extract_text()
print(text)
合并多个 PDF
from pypdf import PdfWriter, PdfReader
writer = PdfWriter()
for pdf_file in ["doc1.pdf", "doc2.pdf", "doc3.pdf"]:
reader = PdfReader(pdf_file)
for page in reader.pages:
writer.add_page(page)
with open("merged.pdf", "wb") as output:
writer.write(output)
提取表格
import pdfplumber
with pdfplumber.open("document.pdf") as pdf:
for page in pdf.pages:
tables = page.extract_tables()
for table in tables:
print(table)
创建新 PDF
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
c = canvas.Canvas("output.pdf", pagesize=letter)
c.drawString(100, 750, "Hello World!")
c.save()
常用操作
将 PDF 拆分为单页文件
from pypdf import PdfReader, PdfWriter
reader = PdfReader("input.pdf")
for i, page in enumerate(reader.pages):
writer = PdfWriter()
writer.add_page(page)
with open(f"page_{i+1}.pdf", "wb") as output:
writer.write(output)
旋转页面
from pypdf import PdfReader, PdfWriter
reader = PdfReader("input.pdf")
writer = PdfWriter()
page = reader.pages[0]
page.rotate(90) # 顺时针旋转 90 度
writer.add_page(page)
with open("rotated.pdf", "wb") as output:
writer.write(output)
提取元数据
from pypdf import PdfReader
reader = PdfReader("document.pdf")
meta = reader.metadata
print(f"Title: {meta.title}")
print(f"Author: {meta.author}")
print(f"Subject: {meta.subject}")
添加密码保护
from pypdf import PdfReader, PdfWriter
reader = PdfReader("input.pdf")
writer = PdfWriter()
for page in reader.pages:
writer.add_page(page)
writer.encrypt("userpassword", "ownerpassword")
with open("encrypted.pdf", "wb") as output:
writer.write(output)
将表格导出为 Excel
import pdfplumber
import pandas as pd
with pdfplumber.open("document.pdf") as pdf:
all_tables = []
for page in pdf.pages:
tables = page.extract_tables()
for table in tables:
if table:
df = pd.DataFrame(table[1:], columns=table[0])
all_tables.append(df)
if all_tables:
combined_df = pd.concat(all_tables, ignore_index=True)
combined_df.to_excel("output.xlsx", index=False)
对扫描版 PDF 执行 OCR
import pytesseract
from pdf2image import convert_from_path
images = convert_from_path('scanned.pdf')
text = ""
for i, image in enumerate(images):
text += f"Page {i+1}:\n"
text += pytesseract.image_to_string(image)
text += "\n\n"
print(text)
命令行示例
# 提取文本(保留原始排版) pdftotext -layout input.pdf output.txt # 合并 PDF qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf # 拆分指定页码范围 qpdf input.pdf --pages . 1-5 -- pages1-5.pdf # 移除密码保护 qpdf --password=mypassword --decrypt encrypted.pdf decrypted.pdf # 提取嵌入图像 pdfimages -j input.pdf output_prefix
速查表
| 任务 | 推荐工具 | 示例 |
|---|---|---|
| 提取文本 | pdfplumber | page.extract_text() |
| 提取表格 | pdfplumber | page.extract_tables() |
| 合并 PDF | pypdf | writer.add_page(page) |
| 拆分 PDF | pypdf | 每页输出为单独文件 |
| 创建 PDF | reportlab | Canvas 或 Platypus |
| OCR 扫描版 PDF | pytesseract | 需先转换为图像 |
| 命令行合并 PDF | qpdf | qpdf --empty --pages ... |
| 填写表单 | pypdf | 参见表单填写示例 |
安全性说明
凭据与网络访问
本技能无需 API 密钥,也不发起任何网络请求。所有操作均通过本地 Python 库完成。
文件访问权限
本技能仅提供读写 PDF 文件的操作指导。Claude 仅会访问您明确指定的文件。
网络访问
本技能不发起任何网络请求。
持久化与权限控制
本技能不会修改其他技能或系统设置,仅提供 PDF 处理相关操作指导。
相关链接
- GitHub 仓库
- API 参考文档
- 社区论坛
- 技术支持
热门AI工具
相关专题
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.8万人学习
共6课时 | 54.7万人学习
最新文章