Java PDF flatten (Form-Elemente entfernen)

Für einen Anwendungsfall musste ich PDFs mit einander Verketten / Mergen, hierzu nutze ich die PDF Box der Version 1.5.0 in meinem Projekt. Leider musste ich immer wieder feststellen das es zu Fehlern kam und ich machte mich auf die Fehlersuche. Als Lösung musste ich in Java PDF flatten (flach machen), damit ich diese verwenden konnte. 

Nach einer sehr groß angelegten Fehlersuche, bin ich zu dem Entschluss gekommen das es an den Bestandteilen von einem PDF liegen kann. Ein PDF Dokument verfügt über ca. 14 verschiedene Elemente in einer Art Baumstruktur, welche beim Verketten / Mergen sich gegenseitig beeinflussen. Dies konnte man gut daran erkennen, das es Fehler bei der Ausführung von JavaScript kam.

Die Herausgeber der Formulare benutzen JavaScript zum Berechnen von Werte und Anderem.Ich möchte die Dokumente miteinander verketten. Formularfelder, JavaScript brauche ich nicht in den Verketteten PDFs, da es kein Sinn macht Formulare in mit einem 50 seitigen Dokument anzuhängen.

Ich mache meine Dokumente flach und entferne alles unnötige wie:

  • JavaScript
  • JS
  • OpenAction
  • Forms
  • AA
  • Launch

In dem Code entferne ich einfach aus dem Strukturbaum eines PDF Dokumentes die oben erwähnten Elemente.

DER CODE

Für mein Codebeispiel benutze ich die Bibliothek iText, welche man hier runterladen kann – iText.