# Editierbare PDF Felder mit XSL und Apache FOP (oder Alternativen)



## user4D53 (17. Mai 2018)

Hallo Zusammen

Ich habe bestehendes Java-Programm mit Datenbank Anbindung, welches Daten aus einer XML-Datei in ein PDF schreibt (mithilfe von Apache FOP). Daneben wird für das Layout ein XSL-File benötigt. Dies funktioniert ohne Probleme. Nun soll das PDF auch editierbare Felder enthalten, damit diese im PDF-Reader ausgefüllt werden können (Bestellformular). 

Weiss jemand ob dies mit Apache FOP überhaupt möglich ist?
Falls ja, gibt es dazu Beispiele/Quellen, welche auzeigen wie dies umgesetzt werden kann?

Gibt es evtl. andere/bessere Alternativen um mittels Java ein PDF mit editierbaren Feldern zu erstellen?

Ich bin für jeden Tipp dankbar.

Gruss
user4D53


----------



## user4D53 (23. Mai 2018)

user4D53 hat gesagt.:


> Hallo Zusammen
> 
> Ich habe bestehendes Java-Programm mit Datenbank Anbindung, welches Daten aus einer XML-Datei in ein PDF schreibt (mithilfe von Apache FOP). Daneben wird für das Layout ein XSL-File benötigt. Dies funktioniert ohne Probleme. Nun soll das PDF auch editierbare Felder enthalten, damit diese im PDF-Reader ausgefüllt werden können (Bestellformular).
> 
> ...



Hallo Zusammen

Mittlerweile habe ich einen kleinen Umweg gefunden, damit ich mit Apache FOP editierbare PDFs erstellen kann. Dazu nutze ich das PDF images Plugin (https://xmlgraphics.apache.org/fop/fop-pdf-images.html), mit welchem ich (editierbare) PDFs in mein PDF integrieren kann wie ein Bild. Die editierbaren PDFs erstelle ich mittels OpenOffice (siehe Google für eine Anleitung dazu --> Formular). Man muss halt die Grösse zuschneiden oder begrenzen, wenn man nicht jedes mal eine komplette Seite einfügen will (z.B. wenn nur ein einzelnes Textfeld eigefügt werden soll).

Das Problem dabei ist, dass ein editierbares PDF zwar mehrmals eingefügt werden kann, aber nur das erste davon wirklich editierbar ist. Fügt man anstelle des gleichen PDFs eine Kopie (mit anderem Namen) ein, so funktioniert es. Man muss jedoch darauf achten, dass die editierbaren Elemente verschiedene Namen kriegen, da sonst der Wert für alle gleichnamigen Felder übernommen wird.

So weit so gut habe ich nun einen kleinen Workaround gefunden - dachte ich ;-)
Es stellt sich nun heraus, dass der gratis Adobe Acrobat Reader DC allem Anschein nach die Schrift nicht kennt. Dadurch erscheinen alle Eingaben als Punkte anstelle der Zeichen. Das komische dabei ist, dass gewisse Felder korrekt funktionieren. Mit dem Foxit-PDF-Reader funktioniert alles tadellos. 

Falls jemand also trotzdem eine Alternative zur Erzeugung von PDFs mit editierbaren Feldern (mittels Java) hat, darf er sich gerne melden.
Eventuell kennt jemand auch das Problem mit der Schrift in Adobe PDF und hat es bereits gelöst?

Vielen Dank und Gruss


----------



## user4D53 (28. Mai 2018)

user4D53 hat gesagt.:


> So weit so gut habe ich nun einen kleinen Workaround gefunden - dachte ich ;-)
> Es stellt sich nun heraus, dass der gratis Adobe Acrobat Reader DC allem Anschein nach die Schrift nicht kennt. Dadurch erscheinen alle Eingaben als Punkte anstelle der Zeichen. Das komische dabei ist, dass gewisse Felder korrekt funktionieren. Mit dem Foxit-PDF-Reader funktioniert alles tadellos.


Hallo zusammen

Ich konnte das Problem beheben, indem ich bei den editierbaren Feldern noch jeweils ein Text hinzugefügt habe (nicht nur das einzelne Formularfeld). Anscheinend wird auf diesem Weg die Schrift korrekt mitgegeben, wodurch Adobe diese verarbeiten und darstellen kann.

Wie es nun aussieht, konnte ich das Problem selber lösen. Dennoch wollte ich euch die Lösung nicht vorenthalten. 
Für mich ist das Thema vorerst abgeschlossen.
Jedoch wäre es trotzdem super, falls jemand eine Alternative kennen würde um mittels Java ein editierbares PDF zu generieren, diese hier posten würde.

Gruss


----------

