Zurück |  | Weiter

## 3.3. Anhänge (Attachments)

### Überblick

Dateien, die als Attachments in PDF-Dokumenten enthalten sind, spielen in nachverarbeitenden Prozessen meist eine wichtige Rolle. Deshalb stellt PDFUnit Tests für Attachments (eingebettete Dateien) bereit:

    <!-- Tags to test embedded files: -->

    <hasNumberOfEmbeddedFiles />
    <hasEmbeddedFile name=".."     (one of the two
                     content=".."  attributes is required)
    />
    <hasEmbeddedFileContent />

### Existenz

Die folgenden Tests beziehen sich auf das PDF-Formular für die deutsche Umsatzsteuervoranmeldung 2010, „umsatzsteuervoranmeldung-2010.pdf“. Es enthält eine Datei mit dem Namen „PrePress-Qualität.joboptions“.

Der einfachste Test ist, zu prüfen, ob es überhaupt eingebettete Dateien gibt:

    <testcase name="hasEmbeddedFile">
      <assertThat testDocument="embeddedfiles/umsatzsteuervoranmeldung-2010.pdf">
        <hasEmbeddedFile />
      </assertThat>
    </testcase>

### Anzahl

Etwas weiter zielt die Prüfung der Anzahl der eingebetteten Dateien:

    <testcase name="hasNumberOfEmbeddedFiles">
      <assertThat testDocument="embeddedfiles/umsatzsteuervoranmeldung-2010.pdf">
        <hasNumberOfEmbeddedFiles>1</hasNumberOfEmbeddedFiles>
      </assertThat>
    </testcase>

### Dateiname

Danach kommen die Namen der Dateien:

    <testcase name="hasEmbeddedFile_WithName">
      <assertThat testDocument="embeddedfiles/umsatzsteuervoranmeldung-2010.pdf">
        <hasEmbeddedFile name="PrePress-Qualität.joboptions" />
      </assertThat>
    </testcase>

### Inhalt

Und schließlich kann der Inhalt der in PDF eingebetteten Datei mit einer externen Datei verglichen werden.

    <testcase name="hasEmbeddedFile_WithContent">
      <assertThat testDocument="embeddedfiles/umsatzsteuervoranmeldung-2010.pdf">
        <hasEmbeddedFile content="embeddedfiles/PrePress-Qualität.joboptions" />
      </assertThat>
    </testcase>

Der Vergleich erfolgt byte-weise.

Wenn die eingebetteten Dateien nicht als separate Datei vorliegen, können sie mit dem Hilfsprogramm „ExtractEmbeddedFiles“ aus einem bestehenden PDF-Dokument (Master-PDF) extrahiert werden. Das Programm wird in Kapitel 9.2: „Anhänge extrahieren“ genauer beschrieben.

Ein Test kann auch gleichzeitig mehrere Dateinamen überprüfen:

    <testcase name="hasEmbeddedFile_MultipleInvocation">
      <assertThat testDocument="embeddedfiles/kubrick_dvds.pdf">
        <hasEmbeddedFile name="0048254.jpg" />
        <hasEmbeddedFile name="0049406.jpg" />
        <hasEmbeddedFile name="0050825.jpg" />
      </assertThat>
    </testcase>

Das vorhergende Beispiel bezieht sich auf die Datei „kubrick_dvds.pdf“, eine Beispieldatei von iText. Der Adobe Reader® zeigt die eingebetteten Dateien an:

Zurück | Nach oben | Weiter
3.2. Aktionen (Actions) | Zum Anfang | 3.4. Anzahl verschiedener PDF-Bestandteile