Skip to content

Conformance landing: what NextPDF produces and who decides it conforms

Boundary statement. Support for a profile is not conformance; an independent validator makes the conformance determination.

This page indexes the standard profiles NextPDF Core targets. Every page in this section follows one rule from the standards: the library produces output intended to conform to a profile, and an independent validator decides whether a given Portable Document Format (PDF) file actually conforms. That validator may be veraPDF, a PDF/UA checker, a Schematron e-invoice validator, or the receiving authority. For PDF/A, ISO 19005-4 §6.7.3 makes this boundary explicit: the pdfaid:part/pdfaid:rev markers identify producer intent; they do not decide conformance. The decision is made under the standard’s conformance clause, by a process outside the producing library.

NextPDF does not assert conformance. It emits the structural artifacts a profile requires. When a profile is gated, NextPDF fails fast at the API boundary, so a missing capability appears as a clear error, not a silently non-conforming file.

Terminal window
composer require nextpdf/core:^3

Some profiles below require the Premium nextpdf/pro package; each affected page notes that requirement. Core ships the conformance discriminator (NextPDF\Conformance\ConformanceMode) and the byte-stream validators in NextPDF\Compliance. The OutputIntent / International Color Consortium (ICC) / Extensible Metadata Platform (XMP) authoring path for archival profiles ships in nextpdf/pro.

NextPDF routes a document to a conformance contract through a single typed discriminator, NextPDF\Conformance\ConformanceMode. The enum is the source of truth for the ISO contract the writer must honor. It has cases for Plain, PdfUa1, PdfUa2, PdfA2, PdfA3/PdfA3b/PdfA3u, and PdfA4/PdfA4e/PdfA4f. The writer reads the mode and emits the required structure; it never sets a flag that says the file conforms.

Three boundaries apply across every page in this section:

  • Support ≠ conformance. Emitting the metadata a profile requires is a capability, not a verdict.
  • Validation ≠ certification. A validator report with no errors is evidence, not a certificate.
  • A tested profile ≠ certification. NextPDF’s tests assert that emitted bytes match the cited clauses; they are not an accredited audit.

The conformance entry points on NextPDF\Core\Document are:

MethodEffectTier
enablePdfA(?object $version = null)Routes the document to a PDF/A ConformanceMode case (default PdfA4); schedules OutputIntent + ICC + XMP at save(). Throws InvalidConfigException if nextpdf/pro is absent.Core API, Premium engine
enableTaggedPdf(string $lang = 'en', ?ConformancePolicy $policy = null)Sets ConformanceMode::PdfUa2, wires the tagged-content emitter, validates the language tag against the policy.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');

Not applicable. Per-profile pages provide runnable production samples; this index is a routing page.

  • The index asserts no behavior. Per-profile pages contain the verified claim tables. This page states only the governing rule.
  • A profile name in metadata is a claim, not proof. A reader that finds pdfaid:part=4 sees the producer’s intent, not proof that the file conforms.
  • Capability gating is fail-fast. A Core-only install that calls a Premium archival path gets InvalidConfigException with an upgrade message, never a silently non-conforming file.

Not applicable to the index. Per-profile pages declare their own budgets.

Conformance profiles constrain structure, not threat posture. PDF/A-4 prohibits encryption; PDF/UA-2 requires accessible structure. Neither is a security control. See the trust center for the engine’s security model.

ClaimSpecClausereference_id
The producer’s pdfaid markers identify intent; the standard’s conformance clause governs the determination by a validator or process, not by the library.ISO 19005-4§6.7.3
PDF/UA-2 conformity is assessed against the standard’s conformity requirements, not asserted by the producing software.ISO 14289-2§7.2.2
A conforming PDF 2.0 file shall satisfy the defined file-structure and trailer requirements; the library emits them but does not adjudicate the result.ISO 32000-2§7.5.5

Citations are clause-id + reference_id pointers into the verification corpus. No standards text is reproduced.