Conformance landing: what NextPDF produces and who decides it conforms
At a glance
Section titled “At a glance”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.
Install
Section titled “Install”composer require nextpdf/core:^3Some 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.
Conceptual overview
Section titled “Conceptual overview”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.
API surface
Section titled “API surface”The conformance entry points on NextPDF\Core\Document are:
| Method | Effect | Tier |
|---|---|---|
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 |
Code sample — Quick start
Section titled “Code sample — Quick start”<?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');Code sample — Production
Section titled “Code sample — Production”Not applicable. Per-profile pages provide runnable production samples; this index is a routing page.
Edge cases & gotchas
Section titled “Edge cases & gotchas”- 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=4sees 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
InvalidConfigExceptionwith an upgrade message, never a silently non-conforming file.
Performance
Section titled “Performance”Not applicable to the index. Per-profile pages declare their own budgets.
Security notes
Section titled “Security notes”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.
Conformance
Section titled “Conformance”| Claim | Spec | Clause | reference_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.