{"id":7520,"date":"2016-12-03T19:23:45","date_gmt":"2016-12-03T18:23:45","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=7520"},"modified":"2023-08-20T14:55:17","modified_gmt":"2023-08-20T12:55:17","slug":"lebenskalender","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=7520","title":{"rendered":"PDF erzeugung in 5 Zeilen mit Java am Beispiel eines Lebenskalender"},"content":{"rendered":"<p>Wie k\u00f6nnen mit Java PDF Dokumente erzeugt werden?<\/p>\n<p>Das geht mit ein paar Zeilen Code und <a href=\"https:\/\/itextpdf.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">iText<\/a>. Die iText Lib l\u00e4\u00dft sich leicht integrieren. Hier mal ein Beispiel um ein paar Daten zu haben, nehmen wir mal einen Lebenskalender. Der ganze Code (nur eine Java Klasse) liegt auf <a href=\"https:\/\/github.com\/IT-Berater\/de.wenzlaff.lebenskalender\" target=\"_blank\" rel=\"noopener noreferrer\">Github<\/a> und kann von <a href=\"https:\/\/github.com\/IT-Berater\/de.wenzlaff.lebenskalender\" target=\"_blank\" rel=\"noopener noreferrer\">dort<\/a> geladen werden. <\/p>\n<p>Also mal ein neues Mavenprojekt anlegen und in der <strong>pom.xml<\/strong> die iText Abh\u00e4ngigkeit einf\u00fcgen:<\/p>\n<pre class=\"lang:default decode:true \" >\t\r\n&lt;dependency&gt;\r\n  \t&lt;groupId&gt;com.lowagie&lt;\/groupId&gt;\r\n        &lt;artifactId&gt;itext&lt;\/artifactId&gt;\r\n        &lt;version&gt;4.2.0&lt;\/version&gt;\r\n&lt;\/dependency&gt;\r\n<\/pre>\n<p>Dann mal ein paar Zeilen Javacode f\u00fcr die PDF Erzeugung z.B. so:<\/p>\n<pre class=\"lang:java decode:true \" >\r\n\r\nprivate static void printPdfDokument(List&lt;String&gt; kalender) throws DocumentException, FileNotFoundException {\r\n\r\n\t\tDocument document = new Document(PageSize.A4);\r\n\t\tPdfWriter.getInstance(document, new FileOutputStream(\"lebenskalender.pdf\"));\r\n\t\tdocument.open();\r\n\r\n\t\tFont f = new Font();\r\n\t\tf.setFamily(\"Courier\");\r\n\t\tf.setSize(10);\r\n\r\n\t\tfor (String woche : kalender) {\r\n\t\t\tdocument.add(new Paragraph(woche, f));\r\n\t\t}\r\n\t\tdocument.close();\r\n\t}\r\n\r\n<\/pre>\n<p>und schon k\u00f6nnen wir ein PDF Dokument erzeugen. Hier das Ergebnis <a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/12\/lebenskalender.pdf\">lebenskalender.pdf<\/a>.<\/p>\n<p>Hier mal die Ausgabe auf System.out:<\/p>\n<pre class=\"lang:default decode:true \" >  Lebenskalender\r\n\r\n          Berechne von aktuellem Alter 52 Jahren und 7 Monate\r\n\r\nJahre                           Wochen\r\n 0        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n 1        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n 2        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n 3        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n 4        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n 5        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n 6        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n 7        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n 8        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n 9        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n10        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n11        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n12        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n13        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n14        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n15        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n16        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n17        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n18        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n19        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n20        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n21        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n22        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n23        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n24        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n25        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n26        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n27        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n28        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n29        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n30        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n31        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n32        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n33        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n34        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n35        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n36        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n37        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n38        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n39        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n40        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n41        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n42        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n43        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n44        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n45        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n46        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n47        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n48        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n49        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n50        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n51        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n52        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\r\n53        XXXXXXXXXXXXXXXXXXXXXXXXXXXX........................\r\n54        ....................................................\r\n55        ....................................................\r\n56        ....................................................\r\n57        ....................................................\r\n58        ....................................................\r\n59        ....................................................\r\n60        ....................................................\r\n61        ....................................................\r\n62        ....................................................\r\n63        ....................................................\r\n64        ....................................................\r\n65        ....................................................\r\n66        ....................................................\r\n67        ....................................................\r\n68        ....................................................\r\n69        ....................................................\r\n70        ....................................................\r\n71        ....................................................\r\n72        ....................................................\r\n73        ....................................................\r\n74        ....................................................\r\n75        ....................................................\r\n76        ....................................................\r\n77        ....................................................\r\n          Lebenserwartung in Deutschland:\r\n\r\n          M\u00e4nner 77 Jahre 9 Monate\r\n\r\n          Frauen 82 Jahre 10 Monate\r\n\r\n          Statistisch also noch: 27 Jahre als Mann zu leben!\r\n<\/pre>\n<p><!--more--><\/p>\n<p>Wer auch so einen Kalender mit seinen Daten haben will, kann mir gern eine E-Mail senden mit Angabe seines Alters. Ich sende dann den ersten 10 Einsendungen kostenlos einen PDF Lebenskalender zu \ud83d\ude09<\/p>\n<p>Wer die Idee Gut findet, kann ja einen like abgeben.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wie k\u00f6nnen mit Java PDF Dokumente erzeugt werden? Das geht mit ein paar Zeilen Code und iText. Die iText Lib l\u00e4\u00dft sich leicht integrieren. Hier mal ein Beispiel um ein paar Daten zu haben, nehmen wir mal einen Lebenskalender. Der ganze Code (nur eine Java Klasse) liegt auf Github und kann von dort geladen werden. &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=7520\" class=\"more-link\"><span class=\"screen-reader-text\">\u201ePDF erzeugung in 5 Zeilen mit Java am Beispiel eines Lebenskalender\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[220,2469,5],"tags":[112,364,2684,2178,827,2683,2182,2685],"class_list":["post-7520","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-github-projekte","category-java","tag-beispiel","tag-code","tag-itext","tag-java","tag-kalender","tag-lebenskalender","tag-programmierung","tag-testabdeckung"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/7520","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7520"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/7520\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7520"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7520"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7520"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}