3-Heights™ PDF Validator – Konformitätsprüfung für PDF und PDF/A Dokumente

Der 3-Heights™ PDF Validator dient der Qualitäts­sicherung von PDF Dokumenten und Prozessen, welche solche erzeugen. Dokumente werden auf Konformität zu den ISO Normen für PDF und PDF/A geprüft.

PDF ist ein weit verbreitetes Format. Deshalb ist es wichtig, dass die Interoperabilität gewährleistet ist. Insbesondere, wenn geschäftsrelevante oder zu archivierende Informationen enthalten sind, müssen die Dokumente auf ihre Korrektheit und langfristige Lesbarkeit geprüft werden. Genau diese Aufgabe, sei es für einzelne Dokumente oder Stapel, übernimmt der Validator.

Verifizierung

Prüfen von Dokumenten bezüglich Einhaltung der PDF und PDF/A Norm

Digitales Langzeitarchiv

In Archivsysteme integrieren

Qualitätskontrolle

Sicherstellen von Unternehmensrichtlinien

Produktgrafik 3-Heights™ PDF Validator

PDF Validator - Funktionen

  • Validierung von PDF-Dokumenten auf Basis verschiedener PDF-Spezifikationen (PDF1.x, PDF 2.0, PDF/A-1, PDF/A-2, PDF/A-3)
  • PDF Konformität anhand von lexikalischen, syntaktischen und semantischen Prüfungen bestimmen
  • Detailiertes oder zusammengefasste (log file)
  • Detaillierte Fehlerbeschreibung (Anzahl, Typ, Beschreibung, PDF-Objekt, Seitenzahl)
  • Klassifizierung nach Fehler, Warnung und Information
  • Optionaler Abbruch der Validierung nach Auftreten des ersten Fehlers
  • Lesen verschlüsselter PDF Dokumente
  • Behauptete PDF Konformität des Dokumentes bestimmen
  • Validierung der Einhaltung von Unternehmensrichtlinien, die in einem benutzerdefinierten Profil definiert sind
  • Dokument aus einer Datei, Memory oder einem Stream lesen oder schreiben
Funktionsgrafik 3-Heights™ PDF Validator

Conformance

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

Unterstützte Formate

Eingangsformate

  • PDF 1.3 bis 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
        Vergrößerungslinse für unsere PDF-Handbücher und PDF-Beispielcode

        HANDBÜCHER

        API | Shell

        Einsatzgebiete - Validierung und Qualitätskontrolle von PDF- und PDF/A-Dokumenten

        Posteingang

        Im Posteingang prüft der Validator die Dokumente auf die Mindestanforderungen, beispielsweise betreffend Sicherheit, Conformance, Reproduzierbarkeit oder Standardisierung (PDF/A + PDF). Mangelhafte Dokumente werden dabei abgelehnt.

        Archivierung

        Im Archiv übernimmt die Komponente die Funktion eines Torwächters: Dokumente, die dem Standard nicht entsprechen, werden abgelehnt. Der Validator lässt sich auch zur Qualitätsprüfung bestehender Archivbestände einsetzen sowie zur Qualitätssicherung bei der Konvertierung von TIFF Archiven nach PDF/A.

        Postausgang

        Im Postausgang lassen sich PDF Dokumente vor dem Versand auf ihre Qualität hin prüfen. Auch die Richtlinien des Empfängers können dabei berücksichtigt werden.

        Qualitätsmanagement

        Der Validator lässt sich im Qualitätsmanagement einsetzen. Man kann damit die Einhaltung von unternehmensweiten Richtlinien (CI) oder auch die Konformität im Allgemeinen, z.B. nach der Konvertierung aus einem anderen Format prüfen.

        Softwarehersteller/OEM

        Der Validator dient der Eingangs- und Ausgangsprüfung in Anwendungen wie z.B. Workflow Systeme, DMS Systeme und – “you sign what you see” – in einer Signaturanwendungssoftware.

        Prüfe ob das Dokument einer bestimmten Konformität entspricht

        Wähle eine PDF/A-Konformitätsstufe aus und überprüfe, ob das eingehende PDF Dokument konform ist oder nicht. Falls es nicht konform ist, wird eine detaillierte Beschreibung der Compliance-Verstösse generiert.

        C# Beispiel:
        // Create the validator
        using (PdfValidator validator = new PdfValidator())
        {
            // Open input file
            if (!validator.Open(inputPath, "", complianceLevel))
                throw new Exception(String.Format("Input file {0} cannot be opened. " + 
                    "{1} (ErrorCode: 0x{2:x}).", inputPath, validator.ErrorMessage, validator.ErrorCode));
        
            // Validate document
            // If true, the PDF is compliant to the specified compliance level.
            // If false, the validation either aborted or the PDF is not compliant to 
            // the specified compliance level.
            if (!validator.Validate())
            {
                if (validator.ErrorCode == PDFErrorCode.PDF_E_CONFORMANCE)
                {
                    Console.WriteLine("Document {0} is not {1} compliant.", inputPath, 
                        compliance);
        
                    // Print compliance violations
                    PdfError currError = validator.GetFirstError();
                    while (currError != null)
                    {
                        Console.WriteLine("Page: {0}, Object: {1}, {2}.", currError.PageNo, 
                            currError.ObjectNo, currError.Message);
                        currError = validator.GetNextError();
                    }
                }
                else
                    throw new Exception(String.Format("Validation of {0} was aborted. {1} " + 
                        "(ErrorCode: 0x{2:x}).", inputPath, validator.ErrorMessage, validator.ErrorCode));
            }
            else
                Console.WriteLine("Document {0} is {1} compliant.", inputPath, compliance);
        
            // Close input file
            validator.Close();
        }
        
        Java Beispiel:
        // Create the validator
        validator = new PdfValidatorAPI();
        
        // Open input file
        if (!validator.open(inputPath, "", complianceLevel))
            throw new IOException(String.format("Input file %s cannot be opened. %s (ErrorCode: 0x%08x).", 
                inputPath, validator.getErrorMessage(), validator.getErrorCode()));
        
        // Validate document
        // If true, the PDF is compliant to the specified compliance level.
        // If false, the validation either aborted or the PDF is not compliant to 
        // the specified compliance level.
        if (!validator.validate())       
        {
            if (validator.getErrorCode() == NativeLibrary.ERRORCODE.PDF_E_CONFORMANCE)
            {
                System.out.printf("Document %s is not %s compliant.\n", inputPath, compliance);
        
                // Print compliance violations
                PdfError currError = validator.getFirstError();
                while (currError != null)
                {
                    System.out.printf("Page: %d, Object: %s, %s.\n", currError.getPageNo(), 
                        currError.getObjectNo(), currError.getMessage());
                    currError = validator.getNextError();
                }
            }
            else
                throw new IOException(String.format("Validation of %s was aborted. %s (ErrorCode: 0x%08x).",
                    inputPath, validator.getErrorMessage(), validator.getErrorCode()));
        }
        else
            System.out.printf("Document %s is %s compliant.\n", inputPath, compliance);
        
        // Close input file
        validator.close();
        
        C Beispiel:
        // Create the validator
        pValidator = PdfValidatorCreateObject();
        
        // Open input file
        if (!PdfValidatorOpen(pValidator, szInputPath, _T(""), iCompliance))
        {
            _tprintf(_T("Input file %s cannot be opened. %s (ErrorCode: 0x%08x).\n"), szInputPath, PdfValidatorGetErrorMessage(pValidator), PdfValidatorGetErrorCode(pValidator));
            iReturnValue = 1;
            goto cleanup;
        }
        
        // Validate document
        // If true, the PDF is compliant to the specified compliance level.
        // If false, the validation either aborted or the PDF is not compliant to 
        // the specified compliance level.
        if (!PdfValidatorValidate(pValidator))
        {
            if (PdfValidatorGetErrorCode(pValidator) == PDF_E_CONFORMANCE)
            {
                _tprintf(_T("Document %s is not %s compliant.\n"), szInputPath, szCompliance);
        
                // Print compliance violations
                pCurrError = PdfValidatorGetFirstError(pValidator);
                while (pCurrError != NULL)
                {
                    int nBufSize = PdfValidatorErrorGetMessage(pCurrError, NULL, 0);
                    TCHAR* szErrorBuff = malloc(nBufSize*sizeof(TCHAR));
                    PdfValidatorErrorGetMessage(pCurrError, szErrorBuff, nBufSize);
                    _tprintf(_T("Page: %d, Object: %d, %s.\n"), PdfValidatorErrorGetPageNo(pCurrError), PdfValidatorErrorGetObjectNo(pCurrError), szErrorBuff);
                    pCurrError = PdfValidatorGetNextError(pValidator);
                    free(szErrorBuff);
                }
            }
            else
            {
                _tprintf(_T("Validation of %s was aborted. %s (ErrorCode: 0x%08x).\n"), szInputPath, PdfValidatorGetErrorMessage(pValidator), PdfValidatorGetErrorCode(pValidator));
            }
        }
        else
        {
            _tprintf(_T("Document %s is %s compliant.\n"), szInputPath, szCompliance);
        }
        
        // Close input file 
        PdfValidatorClose(pValidator);
        

        Bayer CropScience zählt auf das ISO Langzeitarchivformat PDF/A

        Mit der Umstellung profitiert der Kunde von verschiedenen Vorteilen: Im Gegensatz zu TIFF Seiten sind PDF Dokumente durchsuchbar und Text kann durch Copy & Paste weiter verwendet werden. Darüber hinaus ist das Inhaltsverzeichnis nutzbar, um innerhalb des Dokumentes schnell zu navigieren. Mittels Hyperlinks können die Benutzer rasch zu referenzierten Dokumenten springen.

        3-Heights™ PDF Validator prüft elektronische Versicherungsanträge

        Früher wurden elektronische Versicherungsanträge als herkömmliches PDF Dokument übermittelt, was eine gesonderte eigenhändige Unterschrift auf Papier erforderlich machte. Mit der Einführung des Signatur-Pads und dem Wechsel auf PDF/A wurde dieser Prozess vereinfacht.

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