关于 nano-pdf
nano-pdf 是用于 PDF 文档处理的技能,面向文档自动化、数据提取和分析流程。它结合文本提取、OCR、表单填写与文件操作,并可通过命令行或 API 使用。
主要功能
- 01提取文本与结构化数据
- 02通过 Tesseract 执行 OCR
- 03分析文本关键词与模式
- 04填充并扁平化 PDF 表单
- 05合并、拆分、旋转和添加水印
适用场景
- 01从扫描件中提取发票文本
- 02统计报告中的关键词
- 03自动填写并合并 PDF 表单
- 04批量处理 PDF 文档
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill nano-pdf安装后在 Claude Code 中输入/nano-pdf确认已加载。
详细介绍
nano-pdf
用途
此技能提供 PDF 处理工具,包括文本提取、挖掘、表单填写、文档操作和 OCR 集成,帮助高效处理文档工作流。
适用场景
适用于涉及 PDF 数据提取(例如从扫描文档中提取)、报告文本分析、自动提交表单、合并或拆分文件,或对非文本 PDF 应用 OCR 的任务。可用于数据管道、文档自动化脚本,或集成 OCR 服务以处理非结构化数据。
主要功能
- 文本提取:从 PDF 中提取纯文本或结构化数据,支持使用密码处理加密文件;通过集成 Tesseract,为基于图像的 PDF 提供 OCR。
- 文本挖掘:分析提取的文本中的关键词、情感或模式;例如统计文档中短语的出现次数。
- 表单填写:使用 JSON 数据填写交互式 PDF 表单;支持将表单扁平化为静态 PDF。
- 文档操作:合并、拆分、旋转 PDF,或为 PDF 添加水印;可高效处理最多 500 页的文档。
- OCR 集成:通过外部 API 将扫描版 PDF 转换为可搜索文本;需要配置 Tesseract 或类似引擎。
使用模式
快速脚本可通过 CLI 调用,服务端集成可使用 API。批量处理时,可在 Shell 脚本中串联命令;Web 应用可在循环中调用 API。务必明确指定输入和输出路径。常见模式:先提取文本,再按需挖掘或处理。对于 OCR 密集型任务,请先预处理图像,再执行 PDF 操作。
常用命令/API
CLI 命令使用 nano-pdf 二进制文件;API 端点位于 https://api.opencclaw.com/nano-pdf/。身份验证需要设置 $NANO_PDF_API_KEY 环境变量。
- 提取文本:
nano-pdf extract --file input.pdf --output text.txt --ocr true(如果文本不可选中,则会执行 OCR)。 - 挖掘文本:
nano-pdf mine --input text.txt --keywords "AI,robot" --output results.json(输出关键词频次)。 - 填写表单:
nano-pdf fill --template form.pdf --data '{"field1": "value"}' --output filled.pdf。 - 处理 PDF:
nano-pdf merge --files file1.pdf file2.pdf --output combined.pdf。 - 提取用的 API 端点:POST /extract,请求正文为
{"file": "base64encoded_content", "ocr": true},并在请求头中提供Authorization: Bearer $NANO_PDF_API_KEY。 - 代码片段(Python):
import requests response = requests.post('https://api.opencclaw.com/nano-pdf/extract', headers={'Authorization': f'Bearer {os.environ["NANO_PDF_API_KEY"]}'}, json={'file': 'base64data'}) print(response.json()['text']) - 配置格式:API 请求正文使用 JSON,例如
{"file": "path", "options": {"ocr_engine": "tesseract", "language": "en"}};CLI 使用基于标志的配置,例如--config config.json。
集成说明
进行身份验证请求时,请设置 $NANO_PDF_API_KEY;本地使用时,请通过 pip install nano-pdf 安装并将其作为模块导入。可与其他工具结合使用:将 CLI 输出传递给 NLP 库进行挖掘,或通过 HTTP 请求在 Node.js 中使用。使用 OCR 时,请确保已安装 Tesseract,并在环境路径中完成配置。请在沙盒中测试集成,以验证 API 速率限制(例如,每分钟 100 个请求)。
错误处理
检查常见错误,例如文件不存在(退出代码 404)、API 密钥无效(401)或 OCR 失败(例如未安装 Tesseract)。在代码中使用 try-except:
try:
result = nano_pdf.extract('input.pdf')
except FileNotFoundError:
print("Error: File does not exist.")
except Exception as e:
print(f"API Error: {e} - Check $NANO_PDF_API_KEY.")
对于 CLI,请解析 stderr 输出;遇到暂时性错误(例如网络问题)时,请使用指数退避重试。处理前务必验证输入,例如确认 PDF 未损坏。
示例 1:从 PDF 中提取并挖掘文本
要从扫描版发票 PDF 中提取文本并挖掘产品名称:
- 运行:
nano-pdf extract --file invoice.pdf --output invoice_text.txt --ocr true - 然后运行:
nano-pdf mine --input invoice_text.txt --keywords "product" --output analysis.json这会生成一个包含关键词出现次数的 JSON 文件,供进一步处理。
示例 2:填写和编辑表单 PDF
要填写工作申请表并与求职信合并:
- 以 JSON 格式准备数据:
{"name": "John Doe", "position": "Engineer"} - 执行:
nano-pdf fill --template application.pdf --data application_data.json --output filled_app.pdf - 合并:
nano-pdf merge --files filled_app.pdf cover_letter.pdf --output final_packet.pdf输出为一个可直接提交的 PDF。
图谱关系
- 相关工具:“ocr-tool”(增强 OCR 功能)、“document-parser”(支持更多文件类型)、“text-analyzer”(高级挖掘集成)。
- 集群:通过“community”集群与“data-extraction”和“automation-utils”等技能相连。