コンテンツにスキップ
getnextpdf.com

Pro エディション

Interop

NextPDF Pro は、PDF 分析の出力(ドキュメント情報、ページ、テキストブロック、セグメンテーション、フォームデータ)を、外部システムやツールによる消費に向けて、安定したスキーマロック済みの JSON 形状にシリアライズする、バージョン管理された一連の結果データ転送オブジェクト(DTO)を提供します。

この機能は NextPDF Pronextpdf/pro)で提供され、Pro ティアのライセンスエンベロープで有効化されます。そのエンタイトルメントを持たないデプロイでは、この機能のクラスはロードされません。Interop は Pro エディションの一部であり、機能ごとの個別ライセンスフラグはありません。エディションを比較してライセンスを取得する

Terminal window
composer require nextpdf/pro:^3

PDF 処理の出力がプロセスやサービスの境界を越えるとき、受信側には安定したコントラクトが必要です。Interop V1 サーフェスがそれを提供します。

  • InteropResultInterface — すべての結果 DTO がこれを実装します。各 DTO は、常に schema_version キーを保持する JSON セーフな配列にシリアライズされ、また JSON 文字列にもシリアライズされます。
  • 結果 DTODocumentInfoPageInfoBoundingBoxExtractedText / ExtractedPage / TextBlockDocumentSegmentation / SegmentFormData / FormField。各 DTO は、1 つの分析結果の不変のビューです。
  • SchemaLock — CI ガードです。凍結されたスキーマの SHA-256 を保持し、対応するバージョンの引き上げなしにスキーマファイルが変更された場合はビルドを失敗させます。これにより、ワイヤーコントラクトが暗黙のうちにドリフトすることを防ぎます。

Interop サーフェスは明示的にバージョン管理されています(SCHEMA_VERSION)。これを公開 API コントラクトとして扱ってください。追加的な変更はスキーマを引き上げ、破壊的変更には新しいメジャーバージョンが必要です。

シリアライズの形状は、実装の詳細ではなく公開 API コントラクトとして扱われます。すべての DTO は schema_version キーを保持するため、消費側は受け取った形状を推測するのではなく、その形状に基づいて分岐できます。SchemaLock は CI で凍結スキーマの SHA-256 を固定するため、バージョンの引き上げなしにフォーマットがドリフトすることはありません。これこそが、外部システムが JSON に対して安全にビルドできる理由です。コントラクトはバージョンが動くときにのみ動きます。出力は移植可能なまま保たれます。文書化され、バージョン管理された、あなたが所有するデータであり、あなたの足元で変わってしまう形状ではありません。

設計背景:オープンコア、ロックインなし

クラス責務
InteropResultInterface共通のシリアライズコントラクト。
DocumentInfo, PageInfo, BoundingBox共通のドキュメント/ページ DTO。
ExtractedText, ExtractedPage, TextBlockテキスト抽出 DTO。
DocumentSegmentation, Segmentドキュメントセグメンテーション DTO。
FormData, FormFieldフォームデータ DTO。
SchemaLockCI のスキーマドリフトガード。
$json = $result->toJson(JSON_PRETTY_PRINT);
$array = $result->toArray(); // includes 'schema_version'
use NextPDF\Pro\Interop\V1\SchemaLock;
if (! SchemaLock::verify()) {
throw new RuntimeException('Interop schema drift detected — version bump required.');
}
$payload = $result->toArray();
$httpClient->postJson($endpoint, $payload);
  • toArray() は常に schema_version を含みます。下流の消費側は、これに基づいて分岐すべきです。
  • SchemaLock::verify() は、スキーマファイルが欠落している、または変更されている場合に false を返します。
  • DTO は読み取り専用のビューです。分析を再実行することはありません。

シリアライズは、結果グラフのサイズに対して線形です。

DTO は、あなたが投入した分析出力のみを保持します。シリアライズ中にファイルシステムやネットワークの I/O は発生しません。

Interop は、NextPDF が所有するバージョン管理されたスキーマを定義します。外部標準を実装するものではありません。

  • すべての結果 DTO は InteropResultInterface を実装し、常に schema_version キーを保持する JSON セーフな配列にシリアライズされ、また JSON 文字列にもシリアライズされます。
  • 結果 DTO(DocumentInfoPageInfoBoundingBoxExtractedText/ExtractedPage/TextBlockDocumentSegmentation/SegmentFormData/FormField)は、不変の読み取り専用ビューです。分析を再実行することはありません。
  • SchemaLock::verify() は、凍結されたスキーマの SHA-256 を保持し、スキーマファイルが欠落している、または変更されている場合に false を返します。これにより、ワイヤーコントラクトが暗黙のうちにドリフトすることを防ぎます。
  • このサーフェスは明示的にバージョン管理されています(SCHEMA_VERSION)。追加的な変更はスキーマを引き上げ、破壊的変更には新しいメジャーバージョンが必要です。
  • シリアライズ中にファイルシステムやネットワークの I/O は発生しません。

Enterprise は Interop の振る舞いを変更しません。Enterprise は別途文書化された上位ティアの機能を追加しますが、それらはバージョン管理された結果 DTO の使用には必要ありません。

スキーマロックされバージョン管理された結果 DTO に相当する Core の機能はありません。これは Pro の追加機能です。

このページは、外部から観測可能な振る舞いと、サポートされる公開 API サーフェスのみを記述します。内部の名前空間パス、ヘルパークラス、メカニズムの一覧表、ランブックのファイル名、チケットのプレフィックスは対象外です。