3-Heights™ PDF Validator – PDF and PDF/A standard conformance validation

The 3-Heights™ PDF Validator safeguards the quality of PDF documents and the processes that create them. Documents are checked for compliance with the ISO standards for PDF and PDF/A documents.

PDF is a widespread format; it is therefore important that interoperability is ensured. Documents containing information of relevance to business or intended for archiving, in particular, need to be validated with regard to their correctness and long-term legibility. This is precisely what the Validator does, whether for a single document or an entire batch.


Verification of documents with regard to compliance with the PDF and PDF/A standard

Digital long-term archive

Integrate into archiving systems

Quality control

Ensure compliance and corporate directives

Product illustration 3-Heights™ PDF Validator

PDF Validator - features

  • Validate PDF documents on the basis of various PDF specifications (PDF1.x, PDF/A-1, PDF/A-2, PDF/A-3)
  • PDF compliance dependent lexical, syntactic, and semantic checks
  • Detailed or summarized reporting (log file)
  • Detailed error description (number, type, description, PDF object, page number)
  • Classification by error, warning and information
  • Optional cancellation of validation on occurrence of the first error
  • Read encrypted PDF files
  • Determine claimed compliance of document
  • Validate compliance with corporate directives defined in custom profile
  • Read input document from file, memory, or stream
Functionality graphic 3-Heights™ PDF Validator


  • Standards:
    • ISO 19005-1 (PDF/A-1)
    • ISO 19005-2 (PDF/A-2)
    • ISO 19005-3 (PDF/A-3)
    • ISO 32000 (PDF 1.7)
  • Istartor Testsuite
  • ZUGFeRD-compliant
Powered by 3-Heights™ Technology and PDF/A compliant

Supported formats

Input formats

  • PDF
  • PDF/A
Magnifying lens for our PDF manuals and PDF sample code


API | Shell

Areas of use - PDF and PDF/A document validation and quality control

Incoming mail

The Validator checks incoming mail documents for conformance with the minimum requirements, for instance with regard to security, compliance, reproducibility or standardization (PDF/A and PDF). Inadequate documents are rejected.


The component also performs the role of an archive gatekeeper, rejecting documents that do not comply with the standard. The Validator can also be used to validate the quality of existing archives and as a quality assurance tool during the conversion of TIFF archives to PDF/A.

Outgoing Mail

The quality of outgoing PDF documents can be checked prior to dispatch. The tool can take guidelines issued by the recipient into account.

Quality management

The Validator can be used in quality management. It is able to monitor compliance with guidelines (CI) across the company or conformity in general, for instance after conversion from another format.

Software manufacturers/OEM

The Validator serves to validate incoming and outgoing documents in applications such as workflow systems and DMS systems as well as – “you sign what you see” – in signature application software.

#Sample 1 - Validate a PDF document against a specific PDF or PDF/A standard

Validate a PDF document against a given PDF or PDF/A standard and list all conformance violations either detailed or summarized in categories.

using System;
using Pdftools.Pdf;
using Pdftools.PdfValidate;

namespace PdfValidatorSamples
    class ValidatePdfVersionSample
        /// <summary>
        /// Validates a given PDF document against a given PDF or PDF/A standard and lists all errors either detailed or summarized in categories
        /// </summary>
        /// <param name="inFilePath">Path to input PDF document</param>
        /// <param name="pdfVersion">PDF version to validate against</param>
        /// <param name="detailed">Whether the error report should be detailed or summarized</param>
        public static void ValidateConformance(string inFilePath, PDFCompliance pdfVersion, bool detailed)
            using (PdfValidator val = new PdfValidator())
                // 1. Open input document and set PDF version to validate against
                // NOTE: if pdfVersion is set to PDFCompliance.ePDFUnk, the document will be validated against the conformance claimed by itself
                if (!val.Open(inFilePath, String.Empty, pdfVersion))
                    Console.WriteLine(val.ErrorCode + ": " + val.ErrorMessage);

                // 2. Configure the validator
                val.ReportingLevel = 1;
                val.StopOnError = false;

                // 3. Validate document
                bool conforming = val.Validate();

                // 4. Report conformance violations
                if (detailed)
                    // either detailed (list every single error)
                    PdfError error = val.GetFirstError();
                    while (error != null)
                        Console.WriteLine(error.FileName + ", " + error.PageNo + ", " + error.ObjectNo + ", " + error.ErrorCode + ", " + error.Message + ", " + error.Count);
                        error = val.GetNextError();
                    // or summarized (list only the error categories)
                    Array categories = Enum.GetValues(typeof(PDFConformanceCategory));
                    foreach (PDFConformanceCategory cat in categories)
                        // Bit-wise comparison
                        if ((cat & val.Categories) != 0)

                // 5. Close the currently open input file

                // 7. Report result
                if (conforming) Console.WriteLine("* RESULT: '" + inFilePath + "' CONFORMS to " + pdfVersion.ToString());
                else Console.WriteLine("* RESULT: '" + inFilePath + "' DOES NOT CONFORM to " + pdfVersion.ToString());
pdfvalidator -v -rd -rl 1 -cl pdfa-2b in.pdf
# Validate with detailed error report
# -v: verbose mode
# -rd: report every single error in detail
# -rl 1: report only errors
# -cl pdfa-2b: validate against PDF/A-2b
pdfvalidator -v -rs -rl 1 -cl pdfa-2b in.pdf
# Validate with summarized error report
# -v: verbose mode
# -rs: report errors summarized into categories
# -rl 1: report only errors
# -cl pdfa-2b: validate against PDF/A-2b

Bayer CropScience relies on the ISO long-term archiving format PDF/A

The change to PDF/A has enabled the customer to profit from various advantages: the PDF documents, in contrast to TIFF pages, are searchable and the text can be reused through copy & paste. In addition, the tables of contents have retained their links, allowing users to quickly navigate through documents.

3-Heights™ PDF Validator verifies electronic insurance applications

Electronic insurance applications were previously transferred as normal PDF documents, resulting in the necessity for a hand-written signature on paper. This process has been simplified with the implementation of the Signature Pad and the change to PDF/A format.

PDF Expert Blog - trust in PDF validation software

Can I trust PDF validation software?

If I use validation software from different manufacturers I sometimes get different results. Why can this happen? Does it mean that I can't trust the software? What can I do about it? I hear these and more questions very often and I can understand the user's concerns...