360 Secure SkillHub
360 安全技能中心

pdf-ocr-extraction

该 Skill 通过 pypdfium2 把 PDF 页面渲染成高分辨率图片,再用 pytesseract 调用 Tesseract OCR 识别文字,默认识别简体中文与英文;临时图片只写入 /tmp/ 并在提取后清理,要求用户或环境预先安装 tesseract 与 Python 依赖,不在运行时自动安装,也不调用第三方 API。

bilicen700
bilicen700
热度 70.73
最近更新 2026-05-11 17:33:53
分类:效率依赖:代码执行 / 读写文件应用场景:数据处理 / 文件转换

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add pdf-ocr-extraction
Metadata
name
pdf-ocr-extractor
description
Extract text from image-based or scanned PDFs using Tesseract OCR.
metadata
{"openclaw":{"emoji":"📄","requires":{"bins":["tesseract","python3"]},"install":[{"id":"tesseract-ocr","kind":"system","package":"tesseract","bins":["tesseract"],"label":"Install Tesseract OCR (requires language packs e.g., tesseract-ocr-chi-sim)"},{"id":"pip-deps","kind":"uv","package":"pypdfium2 pytesseract Pillow","label":"Install Python dependencies (pypdfium2, pytesseract, Pillow)"}]}}

PDF OCR Extractor

Use this skill to extract text from scanned PDFs or image-based PDFs that lack a native text layer. It's completely free, doesn't utilize third-party APIs, and offers unlimited usage. It renders PDF pages to images and runs optical character recognition (OCR).

Dependencies

This skill requires:

  1. System Binary: tesseract (along with required language data packs like chi_sim or eng).
  2. Python Packages: pypdfium2, pytesseract, and Pillow.

Note: Do not run automated pip install commands at runtime. Rely on the user or the environment to pre-install the dependencies defined in the metadata block.

Quick Start

Create a Python script (e.g., extract.py) in a temporary directory to handle the extraction safely:

import pypdfium2 as pdfium
import pytesseract
from PIL import Image
import sys
import os

def extract(pdf_path):
    doc = pdfium.PdfDocument(pdf_path)
    full_text = []
    for i, page in enumerate(doc):
        # Render page to a high-resolution image
        bitmap = page.render(scale=2)
        tmp_img = f"/tmp/page_{i}.png"
        bitmap.to_pil().save(tmp_img)
        
        # Run OCR (assuming English and Simplified Chinese packs are installed)
        text = pytesseract.image_to_string(Image.open(tmp_img), lang='chi_sim+eng')
        full_text.append(text)
        
        # Cleanup temporary file
        os.remove(tmp_img)
        
    return "\n".join(full_text)

if __name__ == "__main__":
    if len(sys.argv) > 1:
        print(extract(sys.argv[1]))

Then execute the script:

python3 extract.py /path/to/document.pdf

Security & Sandbox Constraints

  • Write temporary images only to /tmp/ and clean them up immediately after extraction.
  • Do not attempt to dynamically download or install language packs via shell commands; notify the user if a specific language is missing.