3.34. Tagging

Überblick

Der PDF-Standard ISO 32000-1:2008 sagt in Kapitel 14.8.1, A Tagged PDF document shall also contain a mark information dictionary (see Table 321) with a value of true for the Marked entry. (Zitat aus: http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf.)

Obwohl diese Formulierung nur das Wort shall enthält, prüft PDFUnit, ob ein PDF-Dokument ein Dictionary mit dem Namen /MarkInfo enthält. Wenn darin ein Eintrag mit dem Key /Marked und dem Wert true existiert, gilt es für PDFUnit als tagged.

Die folgenden Methoden stehen zur Verfügung:

// Simple tests:
.isTagged()

// Tag value tests:
.isTagged().with(..) 
.isTagged().with(..).andValue(..)

Beispiele

Die einfachsten Test überprüfen, ob Tagging-Informationen überhaupt vorhanden sind:

@Test
public void isTagged() throws Exception {
  String filename = "documentUnderTest.pdf";

  AssertThat.document(filename)
            .isTagged() 
  ;
}

Etwas weitergehend sind Prüfungen, die auf die Existenz bestimmter Tags prüfen:

@Test
public void isTagged_WithKey() throws Exception {
  String filename = "documentUnderTest.pdf";
  String tagName = "LetterspaceFlags";

  AssertThat.document(filename)
            .isTagged() 
            .with(tagName)
  ;
}

Als Letztes können Werte bestimmter Tags verifiziert werden:

@Test
public void isTagged_WithKeyAnValue_MultipleInvocation() throws Exception {
  String filename = "documentUnderTest.pdf";
  
  AssertThat.document(filename)
            .isTagged()
            .with("Marked").andValue("true") 
            .with("LetterspaceFlags").andValue("0") 
  ;
}