Kapitel 4. Vergleiche gegen ein Referenz-PDF

4.1. Überblick

Viele Tests folgen dem Prinzip, ein einmal getestetes PDF-Dokument als Referenz für neu erstellte Dokumente zu benutzen. Solche Tests sind sinnvoll, wenn Prozesse, die das PDF erstellen, geändert werden, das Ergebnis aber unverändert bleiben soll.

Initialisierung

Die Instantiierung eines Referenz-Dokumentes erfolgt über die Methode and(..):

@Test
public void testInstantiationWithReference() throws Exception {
  String filenameTest = "documentUnderTest.pdf";
  String filenameReference = "reference.pdf";
  String passwordTest = "owner-password";
  
  AssertThat.document(filenameTest, passwordTest) 1
            .and(filenameReference)               2
  ;
}

1

Das Test-Dokument ist verschlüsselt und wird mit dem Passwort geöffnet.

2

Das Referenz-Dokument ist hier nicht verschlüsselt. Falls es verschlüsselt wäre, muss das Passwort der Methode and() als zweiter Parameter übergeben werden.

Passwörter dienen nur zum Öffnen der Dokumente, die Tests werden von dem Passwort nicht beeinflusst.

Überblick

Die folgende Liste gibt einen vollständigen Überblick über die vergleichenden Tests von PDFUnit. Links führen zu Kapiteln, die den jeweiligen Test ausführlich beschreiben.

// Methods to compare two PDF documents:

.haveSameAccessPermission()           4.3: „Berechtigungen vergleichen“ 
.haveSameAccessPermission(..)         4.3: „Berechtigungen vergleichen“ 
.haveSameAppearance()                 4.10: „Layout vergleichen (gerenderte Seiten)“ 
.haveSameAuthor()                     4.6: „Dokumenteneigenschaften vergleichen“ 
.haveSameBookmarks()                  4.11: „Lesezeichen (Bookmarks) vergleichen“ 
.haveSameCreationDate()               4.5: „Datumswerte vergleichen“ 
.haveSameCreator()                    4.6: „Dokumenteneigenschaften vergleichen“ 
.haveSameEmbeddedFiles(..)            4.2: „Anhänge (Attachments) vergleichen“ 
.haveSameFieldsByName()               4.8: „Formularfelder vergleichen“ 
.haveSameFieldsByValue()              4.8: „Formularfelder vergleichen“ 
.haveSameFormat()                     4.7: „Formate vergleichen“ 
.haveSameImages()                     4.4: „Bilder vergleichen“ 
.haveSameJavaScript()                 4.17: „Sonstige Vergleiche“ 
.haveSameKeywords()                   4.17: „Sonstige Vergleiche“ 
.haveSameLanguageInfo()               4.17: „Sonstige Vergleiche“ 
.haveSameLayerNames()                 4.17: „Sonstige Vergleiche“ 
.haveSameModificationDate()           4.5: „Datumswerte vergleichen“ 
.haveSameNamedDestinations()          4.12: „"Named Destinations" vergleichen“ 
.haveSameNumberOfBookmarks()          4.11: „Lesezeichen (Bookmarks) vergleichen“       
.haveSameNumberOfEmbeddedFiles()      4.2: „Anhänge (Attachments) vergleichen“ 
.haveSameNumberOfFields()             4.8: „Formularfelder vergleichen“ 
.haveSameNumberOfImages()             4.4: „Bilder vergleichen“ 
.haveSameNumberOfLayers()             4.13: „PDF-Bestandteile vergleichen“ 
.haveSameNumberOfNamedDestinations()  4.12: „"Named Destinations" vergleichen“ 
.haveSameNumberOfPages()              4.13: „PDF-Bestandteile vergleichen“ 

...  continued
... continuation:

.haveSameProducer()                   4.6: „Dokumenteneigenschaften vergleichen“ 
.haveSameProperties()                 4.6: „Dokumenteneigenschaften vergleichen“ 
.haveSameProperty(..)                 4.6: „Dokumenteneigenschaften vergleichen“ 
.haveSameSubject()                    4.6: „Dokumenteneigenschaften vergleichen“ 
.haveSameTaggingInfo()                4.17: „Sonstige Vergleiche“ 
.haveSameText()                       4.14: „Text vergleichen“ 
.haveSameTitle()                      4.6: „Dokumenteneigenschaften vergleichen“ 
.haveSameXFAData()                    4.15: „XFA-Daten vergleichen“ 
.haveSameXMPData()                    4.16: „XMP-Daten vergleichen“