コンテンツにスキップ

適合性の概要:NextPDF が生成するものと、適合性を判断する主体

境界の明示。 プロファイルのサポートは適合性ではありません。適合性の判断は独立した検証ツールが行います。

このページは、NextPDF Core が対象とする標準プロファイルをまとめたインデックスです。このセクションのすべてのページは、規格そのものから直接導かれる 1 つのルールに従います。ライブラリはプロファイルへの適合を意図した出力を生成し、独立した検証ツール(veraPDF、PDF/UA チェッカー、Schematron 電子請求書バリデーター、または受領機関)が、特定のファイルが実際に適合しているかを判断します。ISO 19005-4 §6.7.3 は、この点を PDF/A について明示しています。ライターが出力する pdfaid:part/pdfaid:rev マーカーは「それ自体では適合性を判断しない」のです。この判断は、規格の適合性条項に規定されたとおり、生成元ライブラリの外部にあるプロセスによって行われます。

NextPDF は適合性を表明しません。プロファイルが要求する構造的な成果物を出力します。プロファイルがゲートされている場合は、API の境界でただちに失敗します。そのため、必要な機能が欠落している場合でも、黙って非適合のファイルになるのではなく、明確なエラーとして表面化します。

Terminal window
composer require nextpdf/core:^3

以下の一部のプロファイルでは、Premium の nextpdf/pro パッケージが必要です(各ページに記載)。Core には、適合性の判別子(NextPDF\Conformance\ConformanceMode)と、NextPDF\Compliance 内のバイトストリーム検証ツールが含まれています。アーカイブ用プロファイルの OutputIntent / ICC / XMP オーサリングパスは nextpdf/pro に含まれています。

NextPDF は、単一の型付き判別子 NextPDF\Conformance\ConformanceMode を通じて、ドキュメントを適合性コントラクトにルーティングします。この列挙型は、「ライターがどの ISO コントラクトを順守すべきか」についての、信頼できる唯一の情報源です。PlainPdfUa1PdfUa2PdfA2PdfA3/PdfA3b/PdfA3uPdfA4/PdfA4e/PdfA4f のケースを持ちます。ライターはモードを読み取り、必要な構造を出力します。「このファイルは適合している」というフラグを設定することは決してありません。

このセクションのすべてのページには、次の 3 つの境界が適用されます。

  • サポート ≠ 適合性。 プロファイルが要求するメタデータを出力することは機能であり、判定ではありません。
  • 検証 ≠ 認証。 検証ツールを実行し、エラーが報告されないことは証拠であり、証明書ではありません。
  • テスト済みのプロファイル ≠ 認証。 NextPDF 自身のテストは、出力されるバイト列が引用された条項に一致することを保証しますが、それらは認定済みの監査ではありません。

適合性のエントリーポイント(NextPDF\Core\Document 上):

メソッド効果ティア
enablePdfA(?object $version = null)ドキュメントを PDF/A の ConformanceMode ケース(デフォルトは PdfA4)にルーティングします。OutputIntent + ICC + XMP を save() の時点でスケジュールします。nextpdf/pro が存在しない場合は、InvalidConfigException をスローします。Core API、Premium エンジン
enableTaggedPdf(string $lang = 'en', ?ConformancePolicy $policy = null)ConformanceMode::PdfUa2 を設定します。タグ付きコンテンツのエミッターを接続し、言語タグをポリシーに照らして検証します。Core エディション
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
$doc = Document::createStandalone();
$doc->enableTaggedPdf('en'); // ConformanceMode::PdfUa2
$doc->setTitle('Conformance index sample');
$doc->writeHtml('<h1>Hello</h1><p>Tagged content.</p>');
$doc->save(getenv('NEXTPDF_COOKBOOK_OUTPUT') ?: __DIR__ . '/out.pdf');

該当しません。実行可能な本番サンプルは各プロファイルのページに掲載されています。このインデックスはルーティング用のページです。

  • このインデックスはいかなる動作も主張しません。 検証済みのクレーム表は各プロファイルのページに掲載されています。このページは、それらを律するルールを述べるだけです。
  • メタデータ内のプロファイル名はクレームであり、証明ではありません。 pdfaid:part=4 を見つけたリーダーは、生成元の意図を知るのであって、ファイルが適合していることを知るわけではありません。
  • 機能のゲーティングはフェイルファストです。 Core のみをインストールした状態で Premium のアーカイブパスを呼び出すと、アップグレードメッセージを伴う InvalidConfigException が発生し、黙って非適合のファイルになることは決してありません。

このインデックスには該当しません。各プロファイルのページで、それぞれ独自の予算を宣言しています。

適合性プロファイルが制約するのは構造であり、脅威に対する態勢ではありません。PDF/A-4 は暗号化を禁止し、PDF/UA-2 はアクセシブルな構造を義務付けています。いずれもセキュリティ制御ではありません。エンジンのセキュリティモデルについては、トラストセンターを参照してください。

クレーム仕様条項リファレンス ID
生成元の pdfaid マーカーだけでは、適合性は判断されません。判断は規格の適合性条項に従って(つまりライブラリではなく validator/process によって)行われます。ISO 19005-4§6.7.3
PDF/UA-2 の適合性は、規格の適合性要件に照らして評価されるものであり、生成元ソフトウェアが表明するものではありません。ISO 14289-2§7.2.2
適合する PDF 2.0 ファイルは、定義されたファイル構造とトレーラーの要件を満たさなければなりません。ライブラリはそれらを出力しますが、結果を裁定しません。ISO 32000-2§7.5.5

引用は、検証コーパスを指す clause-id + reference_id のポインターです。規格本文は一切複製していません。