NextPDF Connect(Pro)でテキストコンテンツを抽出する
インデックス作成、分析、または後続処理のために、既存の PDF からテキストを抽出します。extract_text ツールを使用します。このツールは Pro ツールプロバイダーに対して再検証されます。このプロバイダーは new ExtractTextTool() をプロトコル名 extract_text で登録します。extract_text は Pro ティアのツールです。 サーバーは起動時に class_exists() でこれをプローブし、Pro パッケージがインストールされている場合にのみ登録します。プレーン出力、ページ範囲、ページ単位に分割された構造化出力をサポートします。
インストール
「インストール」という見出しのセクションcomposer require nextpdf/servercomposer require nextpdf/proトランスポートをバインドします。このツールを前提にする前に、diagnostic.capabilities でツールの有無を確認してください。
概念的な概要
「概念的な概要」という見出しのセクション抽出処理は、コンテンツストリーム内のテキスト表示オペレーターをストリーム順に読み取ります(ISO 32000-2 §9.4)。出力は エンコードされた 読み取り順序を反映します(ISO 32000-2 §9.10)。テキストレイヤーのないスキャン PDF では、テキストがほとんど、またはまったく得られません。これはソースの特性であり、ツールの欠陥ではありません。format: "plain" は 1 つの文字列を返します。format: "structured" は、文字数を含むページごとのオブジェクトを返します。page_range は処理対象ページを制限します。
API サーフェス
「API サーフェス」という見出しのセクション| ツール | ティア | 役割 | リスクティア |
|---|---|---|---|
extract_text | Pro | テキスト抽出(plain / structured / range) | 安全 |
parse_pdf | Core(環境変数でゲート) | 低レベル構造(ページ数、メタデータ) | 安全 |
ツール名はレジストリ上のプロトコル名です。ツールカタログが正式なカタログです。利用できるツールは、インストール済みのティアによって異なります。
コードサンプル — クイックスタート
「コードサンプル — クイックスタート」という見出しのセクションextract_textを、source(サーバーが読み取れるパス)およびformat: "plain"とともに使用します。- サブセットを抽出するには、
extract_textをpage_range: "1-3"とともに使用します。 - ページ単位に分割された出力には、
extract_textをformat: "structured"とともに使用します。
コードサンプル — 本番
「コードサンプル — 本番」という見出しのセクション範囲を要求する前にページ数を把握するには、parse_pdf(または範囲を指定しない事前の extract_text)を使用します。RAG/インデックス作成の場合は、各ページを独立してチャンク化できるよう format: "structured" を優先してください。暗号化されたソースの場合は、password パラメーターを指定してください。文字数はバイト数ではなく、UTF-8 のコードポイント数です。
エッジケースと注意点
「エッジケースと注意点」という見出しのセクション- ソースが見つからない。 不正なパスは、ファイルが見つからないエラーを返します。サーバーが読み取れる絶対パスを使用してください。
- スキャン PDF。 テキストレイヤーがない場合、テキストは空、またはほぼ空になります。先にソースを OCR してください。
- 範囲外のページ。 ドキュメントのページ数を超える範囲は、実際のページ数とともに拒否されます。
- 暗号化されたソース。 password パラメーターを指定してください。
- Pro が存在しない。 Core のみの場合、
extract_textは登録されません。diagnostic.capabilitiesでプローブしてください。
パフォーマンス
「パフォーマンス」という見出しのセクション抽出処理はドキュメントのサイズに応じてスケールし、バジェットは大きな入力を許容します。このツールは PDF ではなくテキストを返すため、生成されるすべての成果物のプロファイルは structural です。
セキュリティに関する注意
「セキュリティに関する注意」という見出しのセクション抽出されたテキストには機密コンテンツが含まれる場合があります。結果は機密情報として扱い、信頼できるチャネル経由でのみ返してください。このツールはファイルシステムへ書き込みません。サーバーの権限でソースパスを読み取るだけなので、呼び出し元が渡せるパスを制限してください。
| 記述 | 仕様 | 箇条 | reference_id |
|---|---|---|---|
| テキストはテキスト表示オペレーターによってストリーム順に表示される。 | ISO 32000-2 | §9.4 | |
| 抽出はエンコードされた読み取り順序を反映する。 | ISO 32000-2 | §9.10 |
このレシピは、抽出されたテキストが、タグ付けされていないドキュメントの忠実な論理的読み取り順序であることを保証しません。順序はエンコードされた順序です。
商用コンテキスト
「商用コンテキスト」という見出しのセクションextract_text は Pro ティアのツールであり、サーバー起動時に Pro パッケージが解決された場合にのみ登録されます。
トランスポートの可用性
「トランスポートの可用性」という見出しのセクション| トランスポート | 利用可否 | 備考 |
|---|---|---|
| MCP(stdio) | あり(Pro) | 大きなテキストによる stdio フレームの肥大化。 |
| REST | あり(Pro) | サポートされている場合の大きな結果のストリーミング。 |
| gRPC | あり(Pro) | 大きなテキストに対するメッセージサイズ制限の適用。 |
HITL リスクティア
「HITL リスクティア」という見出しのセクションextract_text は安全(読み取り専用、副作用なし)であり、決してゲートされません。
確認ゲートの JSON エンベロープ
「確認ゲートの JSON エンベロープ」という見出しのセクション読み取り専用の抽出は決してゲートされません。
{ "allowed": true }