Eine ausfüllbare PDF-Datei mittels Java mit Werten füllen

URL dieses Beitrags: http://blog.stefan-macke.com/2008/02/19/eine-ausfuellbare-pdf-datei-mittels-java-mit-werten-fuellen/

Um mittels Java PDF-Dateien erzeugen und bearbeiten zu können, benötigt man zunächst ein Framework, das die benötigten Funktionen bereitstellt. Listen mit möglichen Bibliotheken gibt es z.B. hier: Java libraries to read and write PDF files, Open Source PDF Libraries in Java.

Ich habe mich für iText entschieden. Nachdem man erstmal die Erzeugung der iText.jar mittels ant hinbekommen hat (siehe How I install my development environment for iText (ANT)) ist der Rest ein Kinderspiel. Das folgende Programm fügt dem ausfüllbaren PDF Antrag.pdf den Wert Berlin in das benannte Feld Wohnort ein und speichert die Datei als AntragAusgefuellt.pdf.

  1. package com.stefanmacke.test;
  2. import com.lowagie.text.*;
  3. import com.lowagie.text.pdf.*;
  4. import java.io.*;
  5. import java.util.*;
  6. public class PDFTest
  7. {
  8.         public static void main(String[] args)
  9.         {
  10.                 try
  11.                 {
  12.                         PdfReader reader = new PdfReader("Antrag.pdf");
  13.                         ByteArrayOutputStream baos = new ByteArrayOutputStream();
  14.                         PdfStamper stamper = new PdfStamper(reader, baos);
  15.                         AcroFields form = stamper.getAcroFields();
  16.                         form.setField("Wohnort", "Berlin");
  17.                         stamper.close();
  18.                         FileOutputStream fos = new FileOutputStream("AntragAusgefuellt.pdf");
  19.                         baos.writeTo(fos);
  20.                         fos.flush();
  21.                         reader.close();
  22.                 }
  23.                 catch (Exception ex)
  24.                 {
  25.                         System.out.println(ex.getMessage());
  26.                 }
  27.         }
  28. }

Update 18:34 Uhr: Habe gerade noch einen Beitrag zum selben Thema im RubyPDF Blog gefunden. Allerdings verwendet der Autor dort iTextSharp, weshalb ich die Lösung natürlich ein wenig schöner finde ;)

Kommentare zu diesem Beitrag

  1. Gravatar bennynuf
    Am 23. April 2008 um 18:28 Uhr

    Ist mit den Frameworks, die dafür benötigt werden, die Einstellung vom Server gemeint?
    Laut php.net muss PDFLib auf dem Server installiert sein
    http://de3.php.net/manual/de/pdf.setup.php

  2. Gravatar Stefan
    Am 24. April 2008 um 09:27 Uhr

    Ähem… es handelt sich hier um eine Java-Anwendung, nicht um PHP. Welche Bibliotheken oder welches Framework du unter PHP zur PDF-Bearbeitung einsetzen kannst, weiß ich leider nicht :(

  3. Gravatar bennynuf
    Am 24. April 2008 um 14:21 Uhr

    Also muss an den Einstellungen des Servers nichts geändert werden und die Bibliotheken werden automatisch bezogen?

    Eine andere Frage hätte ich da auch noch =)
    Können dort auch Daten aus Datenbanken eingelesen werden?

    Ich danke auf jeden Fall =)

Einen Kommentar schreiben

XHTML: Diese Tags sind erlaubt: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>