Kapitel 12. PDFUnit für Nicht-XML Systeme

12.1. Kurzer Blick auf PDFUnit-Java

PDFUnit-Java ist die erste Implementierung von PDFUnit und auch die Basis für die Implementierung in anderen Programmiersprachen. Für die XML-Implementierung ist PDFUnit-Java auch die technische Laufzeitumgebung. Sofern es möglich ist, werden die Schlüsselwörter aller Implementierungen von PDFUnit gleichlautend zu den Schlüsselwörtern in PDFUnit-Java gewählt.

Die API folgt dem Fluent Interface (http://de.wikipedia.org/wiki/Fluent_Interface), wie die folgenden Beispiele zeigen:

@Test
public void hasTextOnFirstPageInClippingArea() throws Exception {
  String filename = PATH + "content/documentForTextClipping.pdf";
  
  int upperLeftX  =  50;
  int upperLeftY  = 130;
  int width       = 170;
  int height      =  25; 
  ClippingArea inClippingArea = new ClippingArea(upperLeftX, upperLeftY, width, height);
  
  AssertThat.document(filename)
            .hasText(ON_FIRST_PAGE, inClippingArea)
            .containing("Content on first page") 
  ;
}
@Test
public void compareFields() throws Exception {
  String filenameTest = PATH + "acrofields/test.pdf";
  String filenameMaster = PATH + "acrofields/master.pdf";
  
  AssertThat.document(filenameTest)
            .and(filenameMaster)
            .haveSameFieldsByName()
            .haveSameFieldsByProperties()
            .haveSameFieldsByValue()
  ;
}
@Test
public void hasSignature() throws Exception {
  String filename = PATH + "signed/sampleSignedPDFDocument.pdf";
  String xpath = "//signature[@name='Signature2']";
  
  XPathExpression expression = new XPathExpression(xpath);
  AssertThat.document(filename)
            .hasSignatures()
            .matchingXPath(expression)
  ;
}

PDFUnit-Java ist in einer eigenen Dokumentation ausführlich beschrieben. Siehe http://www.pdfunit.com/de/documentation/java/index.html.