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 conformance 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

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

Digital long-term archive

Integrate into archiving systems

Quality control

Ensure conformance 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 conformance 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 conformance of document
  • Validate conformance with corporate directives defined in custom profile
  • Read input document from file, memory, or stream
Functionality graphic 3-Heights™ PDF Validator

Conformance

  • Standards:
    • ISO 19005-1 (PDF/A-1)
    • ISO 19005-2 (PDF/A-2)
    • ISO 19005-3 (PDF/A-3)
    • ISO 32000-1 (PDF 1.7)
    • ISO 32000-2 (PDF 2.0)
  • veraPDF test corpus and Isartor test suite

Supported formats

Input formats

  • PDF 1.0 to 1.7
  • PDF 2.0
  • PDF/A-1a, PDF/A-1b
  • PDF/A-2a, PDF/A-2b, PDF/A-2u
  • PDF/A-3a, PDF/A-3b, PDF/A-3u
          Magnifying lens for our PDF manuals and PDF sample code

          MANUALS

          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, conformance, reproducibility or standardization (PDF/A and PDF). Inadequate documents are rejected.

          Archiving

          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 conformance 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, PDFConformance 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 PDFConformance.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);
                              return;
                          }
          
                          // 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();
                              }
                          }
                          else
                          {
                              // 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)
                                  {
                                      Console.WriteLine(val.GetCategoryText(cat));
                                  }
                              }
                          }
          
                          // 5. Close the currently open input file
                          val.Close();
          
                          // 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...