Solutions · Document Intelligence · PDF/A conversion & validation

Convert to PDF/A. Validate every claim.

Two battle-tested engines in one library. PdfAConverter repairs real-world PDFs in one call, fonts embedded and reconciled glyph by glyph, colour calibrated, prohibited constructs removed, XMP rebuilt, and rewrites them as PDF/A-1b, 2b, or 3b. PdfAValidator is its adversary: a distinct engine that re-parses any file from scratch and judges it against the ISO 19005 rule catalog. Both fully on-device.

Repair-first converter Independent validator Encrypted sources opened 100% local

PdfAConverter

The repair engine: one call that fixes fonts, colour, streams, and metadata, then rewrites. File, stream, byte-array, or attachment input; sync and async.

PdfAValidator

The judging engine: re-parses any PDF from scratch and returns a verdict with one finding per failed rule. Same inputs, sync and async.

Deliberately separate

The validator shares no verdict path with the converter, so a pass means the document conforms, not that one tool agrees with itself.

99.9% veraPDF-verified conformance across a 3,200+ file benchmark
100% on the public veraPDF test corpus, 2,694 files
99%+ converted by repair, keeping real text and vectors
2 distinct engines: a converter and an independent validator

Four ways archival projects fail.

A pipeline can fake it, flatten it, refuse it, or take it on faith. Two engines exist so none of those survive here.

Stamping

Declared, not conforming

Writing PDF/A identification into a file that still violates the rules produces archives that fail their first independent validation, years after anyone can fix them.

Rasterizing

Pixels instead of text

Flattening every page to images guarantees conformance and destroys everything else: searchable text, vector sharpness, file size.

Refusing

Errors on real files

Strict converters reject encrypted, damaged, and font-broken documents, which is exactly what a real archive backlog is made of.

Trusting

Verdicts taken on faith

Accepting archives on the producer's word defers every failure to the first independent audit, years after the producer is gone.

The converter: everything ISO 19005 demands.

The converter repairs in place before rewriting, so text, vectors, and layout survive; benchmark outputs are render-compared to their source, page by page.

Fonts

Embedded and reconciled

Every font is embedded. Missing programs are replaced by metric-compatible equivalents, declared widths are reconciled glyph by glyph, and encodings are normalized so extracted text stays intact.

Colour

Calibrated colour

Device colour spaces are calibrated through embedded ICC profiles and an sRGB output intent. Transparency is handled per conformance level.

Prohibited

Constructs removed

JavaScript, launch actions, embedded multimedia, and external references are stripped, as the standard requires for self-contained archives.

Encryption

Encrypted sources

Pass the password and the converter opens protected sources. The output is always unencrypted; PDF/A forbids encryption.

Streams

Compression re-encoded

LZW streams and non-conforming JPEG 2000 images are re-encoded to compliant equivalents without touching conforming content.

Metadata

XMP rebuilt

PDF/A identification metadata is written and the XMP packet is synchronized with the document information dictionary, a classic validation failure.

Levels

A-1b, A-2b, A-3b

Target the level your archive requests via PdfAConversionOptions.Level. The default is PDF/A-2b, the level most archives ask for.

Report

Full accounting

Every conversion returns a report: features detected, fixes applied, raster triggers, unresolved violations, page count, and whether encryption was removed.

Fallback

Three policies

Rasterize (default) guarantees a conforming output by rebuilding unrepairable documents from page renders with an invisible text layer. Fail throws instead, ReportOnly ships the best-effort rewrite plus the violation list.

Three working pipelines.

One call converts a PDF to PDF/A-2b and returns a report of everything that was detected and repaired.

ConvertToPdfA.cs
using LMKit.Document.Pdf;

// One call: repair fonts and colour, strip prohibited constructs,
// rebuild metadata, rewrite as PDF/A-2b.
var report = PdfAConverter.ConvertToFile("invoice.pdf", "invoice_pdfa.pdf");

Console.WriteLine($"Conforms:      {report.Conforms}");
Console.WriteLine($"Pages:         {report.PageCount}");
Console.WriteLine($"Fixes applied: {report.FixesApplied}");

The validator: don't trust the label. Prove it.

PdfAValidator is a second, separate engine: it re-parses any PDF from scratch and judges it against the ISO 19005 rule catalog, entirely in process. No Java runtime, no external tool, no file leaving the machine.

Independent

Never trusts bookkeeping

A distinct engine that evaluates the document's actual state: it tells a file that merely declares PDF/A from one that holds up to the rules.

In process

Nothing to install

Validation ships inside the SDK and runs where the documents already are. Batch-check whole archives without standing up external tooling.

Verdicts

Three honest outcomes

Compliant, NonCompliant with one finding per failed rule, or Undetermined when a file cannot be judged. Never a false verdict.

Findings

Stable rule identifiers

Each finding names its failed rule under a stable identifier, and RulesEvaluated states the pass's own coverage, so stored verdicts stay honest.

ConvertThenProve.cs
using LMKit.Document.Pdf;

// Convert, then prove it: the validator re-parses the
// output from scratch. It never trusts the converter.
var converted = PdfAConverter.ConvertToBytes("legacy.pdf");
var report    = PdfAValidator.Validate(converted.Data);

Console.WriteLine($"{report.Verdict} ({report.Level})");

foreach (var finding in report.Findings)
{
    Console.WriteLine($"  {finding.Rule}: {finding.Description}");
}

Embed it, or serve it.

The same converter ships in LM-Kit One as a REST endpoint: convert documents to archival PDF/A from any language over HTTP.

LM-Kit One, the Private AI Application Server

PDF/A plus the toolkit.

PDF toolkit

Merge, split, render, search-highlight, unlock, and inspect PDFs with the same library.

PDF toolkit page

Scans to PDF/A

Coming from images instead of PDFs? ImageToSearchablePdf turns scans and multipage TIFFs into searchable PDF/A in one pass.

Searchable PDF generation

Document conversion

Markdown to PDF, HTML to Markdown, email to PDF, and the full conversion catalogue.

Conversion page

OCR

The invisible text layer used by the raster fallback is driven by the same on-device OCR engines.

OCR page

PDF redaction

PdfRedactor permanently removes text, images, vectors, and annotations under a mark before you archive. Content is deleted, not covered.

PDF redaction page

Digital signatures

PdfSigner signs, certifies, timestamps, and LTV-extends PDFs on-device; PdfSignatureValidator verifies them against your trust anchors.

Digital signatures page

Archive-ready PDFs. No cloud.

Free Download Download