Zurück |  | Weiter

## 3.22. PDF/A

### Überblick

Für die Prüfung, ob ein PDF-Dokument einen der PDF-Standards (PDF/A, PDF/X, etc.) einhält, gibt es viele Tools und API's. Aber nur einige von ihnen lassen sich für automatisierte Tests nutzen. PDFUnit verwendet den 'Preflight'-Parser von PDFBox.

Informationen zum 'Preflight'-Parser stehen auf der Projekt-Site https://pdfbox.apache.org/1.8/cookbook/pdfavalidation.html zur Verfügung.

Eine PDF/A-Validierung wird mit dieser Methode gestartet:

    // Validate PDF/A-1a and PDF/A-1b:
    .compliesWith().pdfStandard(Standard)

### Beispiel

Das folgende Beispiel überprüft die Einhaltung des Standards PDF/A-1a:

    @Test
    public void compliesWithPDFA() throws Exception {
      String fileName = "pdf_a/documentUnderTest.pdf";

      AssertThat.document(fileName)
                .compliesWith()
                .pdfStandard(PDFA_1A)
      ;
    }

| Es können Dateien verarbeitet werden, nicht aber Byte-Arrays und Streams.
| Mit den Konstanten `PDFA_1A` und `PDFA_1B` wird die PDF/A-Validierung gesteuert.

Die vom Preflight-Parser gelieferten Fehler werden von PDFUnit durchgereicht und sehen in Eclipse und als HTML beispielsweise so aus:

Eine PDF/A-Validierung kann auch auf Verzeichnisse angewendet werden:

    @Test
    public void compliesWithPDFA_InFolder() throws Exception {
      File foldertoWatch = new File("pdf_a-1b");
      FilenameFilter filenameFilter = new FilenameContainingFilter("tn0001");

      AssertThat.eachDocument()
                .inFolder(foldertoWatch)
                .passedFilter(filenameFilter)
                .compliesWith()
                .pdfStandard(PDFA_1B)
      ;
    }

Zurück | Nach oben | Weiter
3.21. Passwort | Zum Anfang | 3.23. QR-Code