Domino 9 und frühere Versionen > ND8: Entwicklung

PDF im Backend befüllen

<< < (2/2)

petra.mint:
Hallo haderer,

wenn es auch Java sein darf, dann würde ich "iText" (itextpdf.com, Download: http://sourceforge.net/projects/itext/files/latest/download) empfehlen. Damit kommt man(n) sehr gut zurecht, wie ich finde.
Ein einfaches Codebeispiel in Java, um ein PDF-Formular (Musterformular als Anhang) zu füllen, sieht so aus:


--- Code: ---public static void main(String[] args) throws IOException, DocumentException {
String form_template = "/home/petra/temp/Formular_1.pdf";
String form_filled = "/home/petra/temp/Formular_1_filled.pdf";
PdfReader reader = new PdfReader(form_template);
PdfStamper stamper = new PdfStamper(reader, new
FileOutputStream(form_filled));
AcroFields form = stamper.getAcroFields();
form.setField("EMail", "meine.email@provider.com");
form.setField("Anrede", "Frau");
form.setField("Vorname", "Petra");
form.setField("Nachname", "Mint");
form.setField("Ort", "Berlin");
form.setField("Mobil", "+49(0)123-1234567");
// form.setListSelection("choice_2", new String[]{"German", "Spanish"});
stamper.close();
reader.close();
}
--- Ende Code ---

Entsprechend umgesetzt in einen Java Notes Agent klappt das auch:

--- Code: ---public void NotesMain() {
      try {
          Session session = getSession();
          AgentContext agentContext = session.getAgentContext();
          // (Your code goes here)
          DocumentCollection dc = agentContext.getUnprocessedDocuments();
          Document doc = dc.getFirstDocument();
                  String form_template = "c:/temp/Formular_0_template.pdf";
                String form_filled = "c:/temp/Formular_1_filled.pdf";
                PdfReader reader = new PdfReader(form_template);
                PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(form_filled));
                AcroFields form = stamper.getAcroFields();
                form.setField("EMail", "meine.email@provider.com");
                form.setField("Anrede", doc.getItemValueString("Anrede"));
                form.setField("Vorname", doc.getItemValueString("Vorname"));
                form.setField("Nachname", doc.getItemValueString("Nachname"));
                form.setField("Ort", doc.getItemValueString("Ort"));
                form.setField("Strasse", doc.getItemValueString("Lage"));
                form.setField("Mobil", doc.getItemValueString("Telefon"));
              stamper.close();
                reader.close();
      } catch(Exception e) {
          e.printStackTrace();
       }
   }

--- Ende Code ---

flaite:
Ich hab sehr gute Erfahrungen mit iText gemacht.
- stabil.
- alt, viele Details
- umfangreich, trotzdem nicht zu steile Lernkurve und dann einfach.
- Tonnen an Tutorial, source code + stackoverflow threads von denen man copy & pasten kann.
- tiefere Dokumentation, wenn man das braucht (das Buch von dem Autor der Bibliothek von Manning, IText in Action.

Ich mach gefühlte 95% meiner Bürokommunikation mit einem völlig unobjektorientierten Code-Salat, den auch ein 3-jähriger schreiben könnte. Wollte da immer mal aufräumen.

Für itext Fragen, kann man mich über persönliche Nachricht in diesem Forum anpingen.

petra.mint:

--- Zitat von: flaite am 16.12.14 - 17:55:58 ---Ich hab sehr gute Erfahrungen mit iText gemacht.
- stabil.
- alt, viele Details
- umfangreich, trotzdem nicht zu steile Lernkurve und dann einfach.
. . .

--- Ende Zitat ---

Das kann ich bestätigen. Irgendwie macht die Lib immer wieder Spaß... auch als objektorientierter und strukturierter Salat eine feine Sache. Det Coding kann ja sonst keena mehr les’n!

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln