PDF Reader
PDF ファイルをテキスト抽出して Markdown 形式に変換するスキルです。
クイックスタート
基本的な使い方
WSL環境でPythonスクリプトを実行
wsl python3 scripts/read_pdf.py "/mnt/c/path/to/file.pdf"
Markdown形式で保存
-
スクリプトでテキスト抽出
-
Write ツールで .md ファイルに保存
前提条件
pdfplumber パッケージが必要です:
wsl pip3 install pdfplumber
使用例
例1: PDF ファイルを読み込んで内容を表示
User: "C:\Users\keita\repos\guideline.pdf を読み込んで" Assistant:
- Windowsパスを WSL パスに変換: /mnt/c/Users/keita/repos/guideline.pdf
- wsl python3 scripts/read_pdf.py を実行
- 抽出されたテキストを Markdown 形式で表示
例2: PDF を Markdown に変換して保存
User: "ガイドライン.pdf を Markdown に変換して保存" Assistant:
- scripts/read_pdf.py でテキスト抽出
- Markdown形式で構造化(ページごとに見出し、テーブルも含む)
- Write ツールで ガイドライン.md に保存
- 保存完了を報告
ワークフロー
単一ファイルの読み込み
-
ユーザーが PDF ファイルパスを指定
-
Windows パスを WSL パス形式に変換 (C:
→ /mnt/c/ ) -
wsl python3 scripts/read_pdf.py を実行
-
抽出されたテキストを Markdown 形式で表示または保存
複数ファイルの一括処理
-
Glob で .pdf ファイルを検索
-
各ファイルに対してスクリプトを実行
-
結果をまとめて報告
出力形式
Markdown 構造
[PDFファイル名]
Total Pages: 10
Page 1
[ページ1のテキスト内容]
Tables
Table 1:
| 列1 | 列2 | 列3 |
|---|---|---|
| データ1 | データ2 | データ3 |
Page 2
[ページ2のテキスト内容]
スクリプト詳細
Python スクリプトは scripts/read_pdf.py に配置されています。
主な機能:
-
ページごとのテキスト抽出
-
テーブルの Markdown 化
-
複数ページの構造化
-
エラーハンドリング
使い方:
python scripts/read_pdf.py <file_path>
対応機能
-
✅ テキスト抽出(全ページ)
-
✅ テーブルの Markdown 化
-
✅ ページ番号の保持
-
✅ 構造化された出力
-
⚠️ 画像からのテキスト抽出(OCR未対応)
-
⚠️ 複雑なレイアウトは簡略化
制限事項
-
スキャンされた PDF(画像のみ)からはテキスト抽出不可
-
OCR 機能は含まれません
-
複雑なレイアウトは簡略化されます
-
フォント情報、色などのスタイルは失われます
-
埋め込みオブジェクトは抽出されません
トラブルシューティング
pdfplumber がインストールされていない
wsl pip3 install pdfplumber
テキストが抽出されない
-
PDF がスキャン画像の可能性があります(OCR が必要)
-
PDF が暗号化されている可能性があります
-
テキストレイヤーがない PDF かもしれません
文字化けする
日本語対応の確認
wsl locale
UTF-8 が含まれていることを確認
メモリ不足エラー
大きな PDF ファイルの場合、ページごとに分割して処理することを検討してください。
パス変換
Windows パスから WSL パスへの変換:
-
C:\Users... → /mnt/c/Users/...
-
D:\Projects... → /mnt/d/Projects/...
-
バックスラッシュ
をスラッシュ / に変換
関連ツール
-
PyPDF2: 軽量な代替ライブラリ
-
pdfminer.six: より詳細な制御が必要な場合
-
Camelot: テーブル抽出特化
-
OCRmyPDF: スキャン PDF に OCR を適用
高度な使い方
特定のページのみ抽出
スクリプトを修正して pdf.pages[0:5] のようにスライスを使用できます。
テーブルのみ抽出
スクリプト内の extract_tables() 部分のみを使用します。
OCR が必要な場合
pytesseract と pdf2image を組み合わせて使用します(別スキルとして作成推奨)。
バージョン履歴
-
v1.0.0 (2026-01-06): 初期リリース
-
基本的なテキスト抽出機能
-
テーブル Markdown 化対応
-
WSL環境での動作
-
ページごとの構造化