Validation Policies and WTPDF

Validation policies add enforceable document requirements to the existing structural preflight engine and preserve the text, JSON, HTML and CSV report formats

Built-in policies

GetBuiltInValidationPolicy recognises default, compact, strict, wtpdf-reuse, wtpdf-accessibility, wtpdf-validated-reuse and wtpdf-validated-accessibility

The WTPDF policies enforce the machine-verifiable core requirements for PDF 2.0, a structure tree, a non-empty document language, XMP metadata with dc:title, embedded fonts and the matching PDF Declaration, whilst accessibility policies also require DisplayDocTitle=true

These checks are a deterministic intake gate for the supported rules and do not replace a complete semantic WTPDF, PDF/UA-2 or ISO/TS 32005 validator

Declaration metadata

ReadWTPDFMetadata extracts reuse, accessibility and validated declaration states plus claimBy, claimDate, claimCredentials and claimReport from Catalog XMP

The reader accepts the current registry URIs and the slash form emitted by the original WTPDF 1.0 examples, but reports the current canonical URI form

Public support types

THPDFWTPDFConformanceLevel picks no WTPDF claim, reuse or accessibility validation, whilst THPDFWTPDFMetadata returns the declarations and claim details found in XMP

THPDFValidationJob and THPDFValidationJobs describe ordered batch inputs, and THPDFValidationJobStatus, THPDFValidationJobResult and THPDFValidationJobResults return ordered validation outcomes

THPDFValidationBatchOptions controls report format, worker and queue limits, fail-fast behaviour and cancellation

THPDFMetadataFixMode picks inspection, additive repair or synchronisation, and THPDFMetadataFixResult reports metadata validity and the number of changed properties

Bounded batch execution

RunValidationBatch validates independent files concurrently with caller-controlled worker and queue limits, preserves source order, supports fail-fast and cancellation and records elapsed time plus source-aware error context for every job

A non-positive worker limit picks the active processor count and a non-positive queue limit picks four jobs per worker

Independent metadata repair

FixPDFMetadata uses mfmInspectOnly, mfmAddMissing or mfmSynchronize independently of structural preflight repair

Add-missing mode preserves existing properties and creates a basic packet when metadata is absent, whilst synchronise mode rewrites the common Dublin Core, PDF and XMP properties from the loaded Info dictionary and preserves unrelated RDF descriptions