3.4. Anzahl verschiedener PDF-Bestandteile

Überblick

Nicht nur die Anzahl von Seiten können Testziel sein, auch andere zählbare Teile eines PDF-Dokumentes, wie Formularfelder, Lesezeichen etc. Die folgende Liste zeigt auf, welche Dinge gezählt und damit getestet werden können:

<!-- Tags to count parts of a PDF: -->

<hasNumberOfActions                 />
<hasNumberOfBookmarks               />
<hasNumberOfDifferentImages         />   1
<hasNumberOfEmbeddedFiles           />
<hasNumberOfFields                  />
<hasNumberOfFonts identifiedBy=".."      (required)
/>
<hasNumberOfJavaScriptActions       />
<hasNumberOfLayers                  />
<hasNumberOfOCGs                    />
<hasNumberOfPages                   />   2
<hasNumberOfSignatures              />
<hasNumberOfVisibleImages           />   3

1 3

Prüfungen auf die Anzahl von Bildern werden in Kapitel 3.6: „Bilder in Dokumenten“ beschrieben.

2

Prüfungen auf die Anzahl von Seiten eines PDF-Dokumentes werden in Kapitel 3.20: „Seitenzahlen als Testziel“ beschrieben.

Beispiele

Die Überprüfung der Anzahl von PDF-Teilen ist von der Art der Teile unabhängig. Deshalb werden hier nur zwei Beispiels gezeigt:

<testcase name="hasNumberOfFields">
  <assertThat testDocument="acrofields/simpleRegistrationForm.pdf">
    <hasNumberOfFields>4</hasNumberOfFields>
  </assertThat>
</testcase>
<testcase name="hasNumberOfBookmarks">
  <assertThat testDocument="bookmarks/manyBookmarks.pdf">
    <hasNumberOfBookmarks>19</hasNumberOfBookmarks>
  </assertThat>
</testcase>

Alle Prüfungen können kombiniert werden:

<testcase name="testHugeDocument_MultipleInvocation">
  <assertThat testDocument="performance/groovy_wiki-snapshot_1370.pdf">
    <hasNumberOfPages>1370</hasNumberOfPages>
    <hasNumberOfBookmarks>565</hasNumberOfBookmarks>
    <hasNumberOfActions>1896</hasNumberOfActions>
    <hasNumberOfEmbeddedFiles>0</hasNumberOfEmbeddedFiles>
  </assertThat>
</testcase>

Vorsicht, dieser Test mit einem Dokument von 1370 Seiten dauert ca. 10 Sekunden auf einem zeitgemäß ausgerüsteten Entwickler-Notebook. Trennen Sie die langsam laufenden Tests von den schnellen und starten Sie sie über 2 Skripte oder 2 ANT-Targets.