DIN 5008 definiert Regeln für das Format von Briefen und teilweise auch für deren Inhalte. PDFUnit bietet Möglichkeiten, diese Regeln zu überprüfen. Da der Standard viele Regeln als Empfehlung definiert, müssen Unternehmen die für sie relevanten Regeln auswählen. Technisch sieht das dann so aus, dass die relevanten Regeln in einer Excel-Datei abgelegt werden und alle Regeln der Excel-Datei auf ein PDF-Dokument oder mehrere Dokumente angewendet werden.
Die folgenden Methoden stehen für DIN 5008 prüfungen zur Verfügung:
// Methods to validate DIN 5008 constraints: .compliesWith().din5008FormA() .compliesWith().din5008FormB()
Im Internet sind Information zu DIN 5008 unter https://de.wikipedia.org/wiki/DIN_5008 zu finden. Kapitel 3.11: „Excel-Dateien für Validierungsregeln“ beschreibt ausführlich, wie Regeln in Excel erfasst werden.
Im folgenden Beispiel wird nur das PDF-Dokument dem Test übergeben. Die Excel-Datei
mit den DIN 5008 Regeln wird nicht an den Test übergeben, sondern
in der Konfigurationsdatei pdfunit.config
festgelegt:
# ############################################################################# # # Definition of PDF validation files. # ############################################################################# file.din5008.forma = src/main/resources/din5008/ValidationRules-DIN5008-FormA.xls file.din5008.formb = src/main/resources/din5008/ValidationRules-DIN5008-FormB.xls
Das Verzeichnis kann als relativer oder absoluter Pfad angegeben werden. Ein Test sieht dann so aus:
@Test public void compliesWithDin5008B() throws Exception { String filename = "documentUnderTest.pdf"; AssertThat.document(filename) .compliesWith() .din5008FormB() ; }
Falls es verschiedene Excel-Datei gibt, reicht der eine Eintrag in der
pdfunit.config
nicht aus. Deshalb kann auch der Name der Excel-Datei mit den Validierungsregeln
an einen Test übergeben werden:
@Test public void din5008FormB() throws Exception { String filename = "documentUnderTest.pdf"; String rulesAsExcelFile = PATH_TO_RULES + "din5008-formB_letter-portrait.xls"; PDFValidationConstraints excelRules = new PDFValidationConstraints(rulesAsExcelFile); AssertThat.document(filename) .compliesWith() .constraints(excelRules) ; }
Beide vorhergehenden Tests können auch mit einem Verzeichnis statt mit einer Datei ausgeführt werden. In dem Falle wird jedes PDF-Dokument in dem Verzeichnis gegen die Excel-Datei validiert.
@Test public void compliesWithDin5008BInFolder() throws Exception { String filename = "documentUnderTest.pdf"; File folderWithPDF = new File(folderName); AssertThat.eachDocument() .inFolder(folderWithPDF) .compliesWith() .din5008FormB() ; }