pdf-2 について
pdf-2は、OpenClawのドキュメントワークフローでPDF処理を自動化するスキルです。CLIまたはAPIから、OCR、構造化データの抽出、署名処理、ファイル操作、注釈を扱えます。
主な機能
- 01TesseractによるOCR
- 02フォーム項目のJSON抽出
- 03テーブルのCSV解析
- 04署名の検証と追加
- 05PDFの結合と分割
- 06注釈の抽出と追加
活用シーン
- 01スキャンPDFからのテキスト抽出
- 02請求書のフォームや表の処理
- 03署名済み法的文書の検証
- 04複数PDFからのレポート準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill pdf-2インストール後、Claude Code で/pdf-2を入力して読み込まれたか確認します。
詳細
pdf-2
目的
このスキルでは、画像からのテキスト抽出のための OCR、フォームデータの抽出、テーブルの構造化形式への解析、電子署名の検証と追加、PDF の結合・分割、注釈の処理など、高度な PDF 処理が可能です。OpenClaw でドキュメントのワークフローを自動化するために設計されています。
使用するタイミング
表やフォームを含む請求書からのデータ抽出、署名付きの法的文書の検証、ファイルを結合したレポートの作成など、スキャン済みまたは複雑な PDF を扱うタスクでこのスキルを使用します。検索できない PDF を扱う場合(OCR の利用など)や、ドキュメントパイプラインで他のツールとの連携が必要な場合にも適用してください。
主な機能
- OCR:Tesseract エンジンを使用してテキストを抽出します。
--langフラグで言語を指定できます(例:英語の場合は--lang eng)。 - フォーム抽出:PDF フォームを JSON として解析します。
--fieldsフラグを使用して、テキストボックスやチェックボックスなどのフィールドを抽出します。 - テーブル解析:テーブルを検出し、CSV に変換します。
--layout autoまたは--layout gridでレイアウトを指定します。 - 電子署名:
--verifyフラグで署名を検証し、証明書のパスを指定して--signで新しい署名を追加します。 - 結合・分割:
--inputsフラグで複数の PDF を結合します。ページ範囲(例:--pages 1-5)を指定して分割します。 - 注釈:
--extract-annotationsまたは--add-annotation type=highlight text="Note"を使用して、注釈(ハイライトなど)を抽出または追加します。
使用パターン
単発のタスクには CLI、スクリプト化したワークフローには API から呼び出します。パイプを使ってコマンドを連結することもできます(例:OCR の出力をテキスト処理ツールに渡す)。一括処理には、スクリプト内でループを使用します。入力パスと出力パスは必ず明示してください。大きなファイルを扱う場合は、処理時間を延長するために --timeout 300 を設定します。デフォルト値は JSON 設定ファイルで設定できます(例:{"default_lang": "eng"})。
主なコマンド/API
CLI コマンド:
- OCR:
openclaw pdf-2 ocr --input path/to/file.pdf --lang eng --dpi 300 --output extracted.txt - フォーム抽出:
openclaw pdf-2 extract-form --file form.pdf --fields name,address --output data.json - テーブル解析:
openclaw pdf-2 parse-table --input table.pdf --page 2 --output tables.csv - 署名検証:
openclaw pdf-2 verify-signature --file signed.pdf --cert path/to/cert.pem - PDF の結合:
openclaw pdf-2 merge --inputs file1.pdf file2.pdf --output merged.pdf - PDF の分割:
openclaw pdf-2 split --input original.pdf --pages 1-3 --output split_folder/
API エンドポイント:
- OCR:JSON ボディ
{"file": "base64encoded_string", "lang": "eng", "dpi": 300}を指定して POST /api/pdf-2/ocr - フォーム抽出:ボディ
{"file": "base64encoded", "fields": ["name", "address"]}を指定して POST /api/pdf-2/extract-form - テーブル解析:ボディ
{"file": "base64encoded", "page": 2}を指定して POST /api/pdf-2/parse-table
コードスニペット:
- OCR の Python API 呼び出し:
import requests; import os; import base64 api_key = os.environ['OPENCLAW_API_KEY'] response = requests.post('https://api.openclaw.ai/api/pdf-2/ocr', headers={'Authorization': f'Bearer {api_key}'}, json={'file': base64.b64encode(open('file.pdf', 'rb').read()).decode()}) - シェルスクリプトでの CLI:
export OPENCLAW_API_KEY=your_key openclaw pdf-2 ocr --input input.pdf --output output.txt
設定形式:
API リクエストまたは CLI 設定には JSON を使用します(例:{"lang": "eng", "timeout": 60})。.json ファイルとして保存し、--config path/to/config.json を指定して渡します。
連携に関する注意事項
API 呼び出しには、環境変数 OPENCLAW_API_KEY=your_api_key を設定して認証します。CLI では、OpenClaw CLI がインストールされ(例:npm install openclaw)、認証済みであることを確認してください。出力をパイプで渡す(例:OCR の結果を NLP ツールに送信する)ことで、他のサービスと連携できます。API ボディでファイルをアップロードする場合は、base64 にエンコードしてください。Webhook では、リクエストにコールバック URL を含めて /api/pdf-2/webhook エンドポイントを使用します。
エラー処理
API エラーでは HTTP ステータスコード(入力不正の場合は 400、認証されていない場合は 401 など)を確認し、JSON レスポンスを解析して {"error": "File not found"} のような詳細を確認します。CLI の場合、エラーは終了コード(失敗時は終了コード 1 など)とともに stderr に出力されます。よくある問題には適切に対処してください。API のタイムアウトには、たとえば Python で try: requests.post(...) except requests.exceptions.Timeout: print("Timeout occurred") のように try-except を使用します。コマンドを実行する前に、os.path.exists() でファイルの存在を確認するなど、入力を検証してください。一時的なエラーには、指数バックオフを使用して再試行します。
具体的な使用例
-
スキャンした請求書 PDF から表を抽出して解析する:
- まず、OCR を実行します:openclaw pdf-2 ocr --input invoice_scanned.pdf --lang eng --output ocr_output.txt
- 次に、表を解析します:openclaw pdf-2 parse-table --input invoice_scanned.pdf --page 1 --output invoice_tables.csv
- これにより、データベースへのインポートなど、さらなる分析に使用できる CSV が生成されます。
-
レポートの PDF を結合して署名を検証する:
- ファイルを結合します:openclaw pdf-2 merge --inputs report_part1.pdf report_part2.pdf --output final_report.pdf
- 署名を検証します:openclaw pdf-2 verify-signature --file final_report.pdf --cert company_cert.pem
- 有効な場合は処理を進め、そうでない場合はエラーログを記録して対処します。
グラフの関係
- 依存先:ocr-1(コア OCR 機能を提供)
- 統合先:document-1(一般的なドキュメントの保存と取得向け)
- 競合:なし
- 関連:pdf-1(基本的な PDF 処理機能を備えたもので、こちらは高度なバージョンです)
- クラスター:community(コラボレーションスキル向けの共有クラスター)