Enterprise エディション
Document E-Filing — 詳細リファレンス
EFilingOptimizerは、固定順序の 1 パスで電子裁判所提出向けに PDF を準備します。サニタイズ、リニアライズ、サイズ分割。EFilingProfileは管轄制約をエンコードします。組み込みファクトリは US PACER、EU e-Justice、台湾司法院をカバーします。SizeAwareSplitterは、検証してから修正する再分割により、セグメントごとのバイト上限を強制します。- 出力は配信アーティファクトです。署名やアーカイブのパイプラインに再投入してはなりません。
- このモジュールは暗号操作を一切実行せず、アウトバウンドのネットワーク呼び出しも行いません。
提供とライセンス
「提供とライセンス」という見出しのセクションこの機能は NextPDF Enterprise(nextpdf/enterprise)に同梱され、Enterprise ティアのライセンスエンベロープで有効化されます。そのエンタイトルメントを持たないデプロイメントは、この機能のクラスをロードしません。エディションを比較してライセンスを取得。
nextpdf/enterprise パッケージの境界がこのサーフェスをゲートします。機能ごとの個別の機能コードはありません。Core や Pro のエディションに e-filing オプティマイザーは存在しません。
パブリック API サーフェス
「パブリック API サーフェス」という見出しのセクションcomposer require nextpdf/enterprise:^3| シンボル | パラメータ | デフォルトの挙動 | 戻り値 | スロー/失敗条件 | 備考 |
|---|---|---|---|---|---|
EFilingOptimizer::optimize() | string $pdfData, ?EFilingProfile $profile = null | プロファイルは既定で EFilingProfile::pacer()。サニタイズ、リニアライズ、サイズ分割を固定順序で実行。 | EFilingResult | 上限超過の入力が有効な PDF でない場合、分割ステップから InvalidArgumentException。サニタイズとリニアライズの失敗は警告に降格。 | 出力は配信アーティファクト。 |
EFilingProfile::__construct() | $name, $maxFileSizeBytes = 26_214_400, $flattenForms = true, $removeJavaScript = true, $imageQuality = 75, $linearize = true, $compressObjectStreams = true | イミュータブルな管轄プロファイル。 | EFilingProfile | スローしない。 | 組み込みファクトリのないポータル向けのカスタム上限。 |
EFilingProfile::pacer() | なし | 25 MiB 上限、画像品質 75。 | EFilingProfile | スローしない。 | US PACER |
EFilingProfile::euJustice() | なし | 10 MiB 上限、画像品質 70。 | EFilingProfile | スローしない。 | EU e-Justice Portal |
EFilingProfile::taiwan() | なし | 10 MiB 上限、画像品質 70。 | EFilingProfile | スローしない。 | 台湾司法院 |
SizeAwareSplitter::splitByMaxSize() | string $pdfData, int $maxBytes | 入力が収まる場合は単一セグメント。それ以外は推定、検証、再分割。 | list<EFilingSegment> | 上限超過の入力に %PDF ヘッダーがない場合に InvalidArgumentException。 | 上限未満の入力は検証なしで 1 セグメントとして返る。 |
EFilingResult::isSplit() | なし | セグメントが複数存在する場合に true。 | bool | スローしない。 | — |
EFilingResult::segmentCount() | なし | セグメントの総数。 | int | スローしない。 | — |
EFilingResult::compressionRatio() | なし | optimizedTotalSize / originalSize。 | float | スローしない。元の入力が空の場合は 0.0。 | 小さいほど良い。 |
EFilingSegment | $pdfData, $pageRange, $sizeBytes, $segmentIndex | イミュータブルな出力セグメント。 | value object | スローしない。 | 1-25 や all のようなページ範囲文字列。 |
public function optimize(string $pdfData, ?EFilingProfile $profile = null): EFilingResultpublic function __construct( public string $name, public int $maxFileSizeBytes = 26_214_400, public bool $flattenForms = true, public bool $removeJavaScript = true, public int $imageQuality = 75, public bool $linearize = true, public bool $compressObjectStreams = true,) {}
public static function pacer(): selfpublic static function euJustice(): selfpublic static function taiwan(): selfpublic function splitByMaxSize(string $pdfData, int $maxBytes): arraypublic function __construct( public array $segments, public int $originalSize, public int $optimizedTotalSize, public array $optimizations = [], public array $warnings = [],) {}
public function isSplit(): boolpublic function segmentCount(): intpublic function compressionRatio(): float挙動コントラクト
「挙動コントラクト」という見出しのセクションEFilingOptimizer::optimize() は、入力バイト列に対して固定順序のパイプラインを実行します。ステップ 1 では、removeJavaScript が設定されているときにアクティブコンテンツを削除します。提出固有のポリシーで、コンテンツ無害化・再構築(content-disarm-and-reconstruction)エンジンに委譲します。JavaScript、名前付き JavaScript、launch アクション、フォーム送信、データインポートアクションは削除されます。URI アクションは、提出物に正当なリンクが含まれる場合があるため保持されます(allowUriActions)。増分更新は 1 つのリビジョンにフラット化されます(flattenIncrementalUpdates)。ステップ 2 では、linearize が設定されているときに、Core の NextPDF\Writer\Linearizer を通じてサニタイズ後のバイト列をリニアライズします。ステップ 3 では、SizeAwareSplitter を通じてプロファイルの maxFileSizeBytes を強制します。
スプリッターは、平均ページサイズからセグメントごとのページ数を推定して分割し、生成された各セグメントを上限に照らして検証します。依然として複数ページにまたがる上限超過セグメントは、各パスで自身のページ範囲を半分にしながら、すべての子が収まるか単一ページになるまで再帰的に再分割されます。再分割の深さには上限が設けられ、病的な非収束を防ぎます。出力インデックスは、連続かつゼロ始まりを保つように再正規化されます。
optimize() は、3 つのプロファイルフィールド maxFileSizeBytes、removeJavaScript、linearize を使用します。flattenForms、imageQuality、compressObjectStreams の各フィールドは宣言済みのプロファイル制約ですが、3.1.0 では optimize() はこれらに作用しません。
E-filing の出力は配信アーティファクトであり、ドキュメントライフサイクルの状態ではありません。最適化または分割された PDF は送信用として最終的なものであり、署名やアーカイブのパイプラインに再投入してはなりません。再処理はハッシュチェーンと証拠としての完全性を損ないます。
このモジュールは、設定に従って電子裁判所/行政機関への提出向けのフォーマットを準備します。いかなる裁判所、登録機関、審判機関、または提出ポータルによる受理を保証するものではありません。組み込みプロファイルの上限は、各ポータルからのライブフィードではなく、便宜上、広く公表されている制約をエンコードしたものです。ポータルのルールは管轄によって異なり、変更されます。それらを提出先の登録機関の最新ルールに照らして確認することは、提出者の責任です。
処理はインプロセスかつローカルです。裁判所、登録機関、または提出ポータルへの転送は、このモジュールの対象外です。
エッジケースと失敗モード
「エッジケースと失敗モード」という見出しのセクション- 上限以下の入力。ページ範囲
allの 1 セグメント。分割ステップはバイト列を変更しません。 - サニタイズの拒否(例えば解析不能な入力)。警告
CDR sanitization rejected: <reason>が記録され、パイプラインは元のバイト列で継続します。 - 脅威が見つからないサニタイズパス。バイト列はそれでも再構築された PDF に置き換えられ、最適化エントリがクリーンなパスを記録します。
- リニアライズの失敗。警告
Linearization skipped: <message>が記録され、パイプラインはリニアライズされていないバイト列で継続します。 - 上限を超える単一ページ。本質的に分割不能であり、1 つの上限超過セグメントとして変更されずに返されます。このケースでは警告は記録されません。提出前に各セグメントの
sizeBytesをプロファイルの上限と比較してください。 - 再分割の深さ上限に到達。上限超過セグメントは、ループせずそのまま通過します。
- 元の入力が空の場合、
compressionRatio()は0.0を返します。 - このモジュールは暗号操作を一切実行しません。FIPS モードは適用されません。
| 挙動 | 参照 | ステータス |
|---|---|---|
| リニアライズ出力の構成(先頭ページデータをファイル先頭に配置) | ISO 32000-2:2020 Annex F / Annex G | 準拠して構築 |
| 関連ファイルの関係セマンティクス | ISO 19005-3:2012 §6.7.8 | キャリアが該当する場合に遵守 |
| 埋め込みファイルキャリアの要件 | ISO 19005-4:2020 Annex A | キャリアが該当する場合に遵守 |
リニアライズは Linearized PDF 構成を対象とします。これは、効率的な増分アクセスのために、先頭ページの表示に必要なすべてのデータをファイルの先頭に配置します。
これらの行は、引用された条項に準拠して構築された機能を説明します。サポートは適合性ではなく、適合性は認証ではありません。NextPDF はいかなる認証も保有していません。このページのいかなる記述も、いかなる提出ポータルによる受理を保証するものではありません。
このページには export_control_class: legal-review-required が付与されています。NextPDF は法的助言を提供しません。提出ルールは管轄によって異なり、変更されます。それらを満たすことは提出者の責任です。弁護士および提出先の登録機関の最新ガイダンスにご相談ください。
開発ノート
「開発ノート」という見出しのセクションuse NextPDF\Enterprise\Document\EFiling\EFilingOptimizer;use NextPDF\Enterprise\Document\EFiling\EFilingProfile;
$optimizer = new EFilingOptimizer();$result = $optimizer->optimize($pdfBytes, EFilingProfile::euJustice());
foreach ($result->segments as $segment) { // Persist $segment->pdfData; confirm $segment->sizeBytes fits the cap.}- 提出前に
$result->warningsを確認してください。拒否されたサニタイズやスキップされたリニアライズは、例外としてではなくそこに現れます。 - まず元のドキュメントに署名してアーカイブし、その後で配信用のコピーを最適化します。最適化されたセグメントに再署名、再スタンプ、またはアーカイブを決して行わないでください。
- 各セグメントの
sizeBytesをプロファイルの上限に照らして検証してください。分割不能な上限超過ページは、警告なく出力に到達します。 - 組み込みファクトリのないポータルには、そのポータルの公表された上限でカスタム
EFilingProfileを構築してください。
このページは、外部から観察可能な挙動とサポートされるパブリック API サーフェスのみを文書化します。内部名前空間パス、ヘルパークラス、メカニズムテーブル、ランブックのファイル名、チケットのプレフィックスは対象外です。