List of usage examples for com.itextpdf.tool.xml XMLWorkerHelper getInstance
public synchronized static XMLWorkerHelper getInstance()
From source file:com.verbox.PrintHtml.java
public static void RenderPDF_img_too(String inpHtml) throws FileNotFoundException, ParserConfigurationException, SAXException, IOException, DocumentException, PrinterException { try {//from w w w . j a v a2 s . co m fullhtml = inpHtml; String replaceAll = fullhtml.replaceAll("../../image/", ""); Document document = new Document(); // step 2 PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("pdf.pdf")); // step 3 document.open(); // step 4 XMLWorkerHelper worker = XMLWorkerHelper.getInstance(); InputStream is = new ByteArrayInputStream(replaceAll.getBytes(StandardCharsets.UTF_8)); worker.parseXHtml(writer, document, is, Charset.forName("UTF-8")); // step 5 document.close(); PreImgPrint(); } catch (DocumentException | IOException E) { JOptionPane.showMessageDialog(null, "Exeption on print or prepare image " + E); } }
From source file:data.core.ui.UiFileChooser.java
public void renderSaveComponent() { this.validateProperties(); File file = new File(this.filename); this.saveFile.setSelectedFile(file); this.saveFile.setFileFilter(new FileNameExtensionFilter("pdf file", "pdf")); if (this.saveFile.showSaveDialog(null) == JFileChooser.APPROVE_OPTION) { String selectedDir = this.saveFile.getCurrentDirectory().toString(); try {/*from ww w .j av a 2 s . c o m*/ try (OutputStream fileStream = new FileOutputStream( new File(selectedDir + "/" + saveFile.getSelectedFile().getName()))) { Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, fileStream); document.open(); if (this.template != null) { XMLWorkerHelper.getInstance().parseXHtml(writer, document, new FileInputStream(this.template)); } else if (this.html != null) { InputStream is = new ByteArrayInputStream(this.html.getBytes()); XMLWorkerHelper.getInstance().parseXHtml(writer, document, is); } else { System.err.println("No html or file template found in render component"); } document.close(); this.saveFile.setSelectedFile(file); this.saveFile.setCurrentDirectory(file); } } catch (IOException | DocumentException e) { } } }
From source file:de.tuttas.servlets.DokuServlet.java
private Document createBetriebsListe(MyTableDataModel mo, String kopf, OutputStream out) throws ParseException, IOException, DocumentException { Document document = new Document(); /* Basic PDF Creation inside servlet */ PdfWriter writer = PdfWriter.getInstance(document, out); StringBuilder htmlString = new StringBuilder(); htmlString.append(kopf);/* w w w.j a va2 s . co m*/ htmlString.append( "<br></br><table align='center' width='100%' style=\"border: 2px solid black; border-collapse: collapse;\">"); htmlString.append( "<tr><td width='25%' style=\"padding:5px;font-size: 14;border: 1px solid black;\"><b>Name</b></td>"); htmlString.append("<td style=\"padding:5px;border: 1px solid black;\">" + mo.getData(1, 0) + "</td>"); htmlString.append("<td style=\"padding:5px;border: 1px solid black;\">" + mo.getData(2, 0) + "</td>"); htmlString.append("<td style=\"padding:5px;border: 1px solid black;\">" + mo.getData(3, 0) + "</td>"); htmlString.append("<td style=\"padding:5px;border: 1px solid black;\">" + mo.getData(4, 0) + "</td>"); htmlString.append("<td style=\"padding:5px;border: 1px solid black;\">" + mo.getData(5, 0) + "</td>"); htmlString.append("</tr>"); for (int y = 1; y < mo.getRows(); y++) { htmlString.append("<tr>"); htmlString.append("<td style=\"padding:5px;border: 1px solid black;\">" + mo.getData(0, y) + "</td>"); for (int x = 1; x < mo.getCols(); x++) { htmlString.append("<td style=\"font-size: 10;padding:5px;border: 1px solid black;\">" + mo.getData(x, y) + "</td>"); } htmlString.append("</tr>"); } htmlString.append("</table>"); document.open(); // Dokument erzeugen InputStream is = new ByteArrayInputStream(htmlString.toString().getBytes()); // Bild einfgen String url = "http://www.mmbbs.de/fileadmin/template/mmbbs/gfx/mmbbs_logo_druck.gif"; Image image = Image.getInstance(url); image.setAbsolutePosition(45f, 720f); image.scalePercent(50f); document.add(image); XMLWorkerHelper.getInstance().parseXHtml(writer, document, is); document.close(); return document; }
From source file:de.tuttas.servlets.DokuServlet.java
private Document createNotenliste(MyTableDataModel mo, String kopf, OutputStream out, String schuljahrName) throws ParseException, IOException, DocumentException { Document document = new Document(); /* Basic PDF Creation inside servlet */ PdfWriter writer = PdfWriter.getInstance(document, out); StringBuilder htmlString = new StringBuilder(); htmlString.append(kopf);/*from w ww. j a va 2 s . c om*/ htmlString.append("<h3 align=\"center\">" + schuljahrName + "</h3>"); htmlString.append( "<table align='center' width='100%' style=\"border: 2px solid black; border-collapse: collapse;\">"); htmlString.append( "<tr><td width='25%' style=\"padding:5px;font-size: 14;border: 1px solid black;\"><b>Name</b></td>"); for (int x = 1; x < mo.getCols(); x++) { htmlString.append("<td style=\"padding:5px;border: 1px solid black;\">" + mo.getData(x, 0) + "</td>"); } htmlString.append("</tr>"); for (int y = 1; y < mo.getRows(); y++) { htmlString.append("<tr>"); htmlString.append("<td style=\"padding:5px;border: 1px solid black;\">" + mo.getData(0, y) + "</td>"); for (int x = 1; x < mo.getCols(); x++) { htmlString .append("<td style=\"padding:5px;border: 1px solid black;\">" + mo.getData(x, y) + "</td>"); } htmlString.append("</tr>"); } htmlString.append("</table>"); document.open(); // Dokument erzeugen InputStream is = new ByteArrayInputStream(htmlString.toString().getBytes()); // Bild einfgen String url = "http://www.mmbbs.de/fileadmin/template/mmbbs/gfx/mmbbs_logo_druck.gif"; Image image = Image.getInstance(url); image.setAbsolutePosition(45f, 720f); image.scalePercent(50f); document.add(image); XMLWorkerHelper.getInstance().parseXHtml(writer, document, is); document.close(); return document; }
From source file:de.tuttas.servlets.DokuServlet.java
private Document createStundenplan(Klasse kl, String kopf, Date parsedFrom, Date parsedTo, OutputStream out) throws ParseException, IOException, DocumentException { Document document = new Document(); /* Basic PDF Creation inside servlet */ PdfWriter writer = PdfWriter.getInstance(document, out); StringBuilder htmlString = new StringBuilder(); htmlString.append(kopf);//from w ww .j av a 2s .co m htmlString.append(StundenplanUtil.getInstance().getPlan(kl.getKNAME(), PlanType.STDPlanSchueler)); document.open(); // Dokument erzeugen InputStream is = new ByteArrayInputStream(htmlString.toString().getBytes()); // Bild einfgen String url = "http://www.mmbbs.de/fileadmin/template/mmbbs/gfx/mmbbs_logo_druck.gif"; Image image = Image.getInstance(url); image.setAbsolutePosition(45f, 720f); image.scalePercent(50f); document.add(image); XMLWorkerHelper.getInstance().parseXHtml(writer, document, is); document.close(); return document; }
From source file:de.tuttas.servlets.DokuServlet.java
private Document createVertretungsplan(Klasse kl, String kopf, Date parsedFrom, Date parsedTo, OutputStream out) throws ParseException, IOException, DocumentException { Document document = new Document(); /* Basic PDF Creation inside servlet */ PdfWriter writer = PdfWriter.getInstance(document, out); StringBuilder htmlString = new StringBuilder(); htmlString.append(kopf);/* w ww .ja v a 2 s . co m*/ htmlString.append(StundenplanUtil.getInstance().getPlan(kl.getKNAME(), PlanType.VERTRPlanSchueler)); document.open(); // Dokument erzeugen InputStream is = new ByteArrayInputStream(htmlString.toString().getBytes()); // Bild einfgen String url = "http://www.mmbbs.de/fileadmin/template/mmbbs/gfx/mmbbs_logo_druck.gif"; Image image = Image.getInstance(url); image.setAbsolutePosition(45f, 720f); image.scalePercent(50f); document.add(image); XMLWorkerHelper.getInstance().parseXHtml(writer, document, is); document.close(); return document; }
From source file:de.tuttas.servlets.DokuServlet.java
private Document createFehlzeiten(Klasse kl, String kopf, Date parsedFrom, Date parsedTo, OutputStream out) throws ParseException, IOException, DocumentException { Document document = new Document(); /* Basic PDF Creation inside servlet */ PdfWriter writer = PdfWriter.getInstance(document, out); StringBuilder htmlString = new StringBuilder(); htmlString.append(kopf);/*from w w w.j av a 2s. com*/ TypedQuery<AnwesenheitEintrag> query = em.createNamedQuery("findAnwesenheitbyKlasse", AnwesenheitEintrag.class); query.setParameter("paramKName", kl.getKNAME()); query.setParameter("paramFromDate", new java.sql.Date(parsedFrom.getTime())); query.setParameter("paramToDate", new java.sql.Date(parsedTo.getTime())); Log.d("setze From auf " + new java.sql.Date(parsedFrom.getTime())); List<AnwesenheitObjekt> anwesenheit = getData(query); Log.d("Result List:" + anwesenheit); document.open(); String tagZeile = ""; tagZeile += "<table align='center' width='100%' style=\"border: 2px solid black; border-collapse: collapse;\">\n"; tagZeile += AnwesenheitObjekt.getTRHead(); for (AnwesenheitObjekt ao : anwesenheit) { VerspaetungsUtil.parse(ao); if (ao.getAnzahlVerspaetungen() != 0 || ao.getSummeFehltage() != 0) { Schueler s = em.find(Schueler.class, ao.getId_Schueler()); Log.d("Fehltage fr Schuler " + s); tagZeile += ao.toHTML(s.getVNAME() + " " + s.getNNAME()); } } tagZeile += "</table>"; htmlString.append(tagZeile); // Dokument erzeugen InputStream is = new ByteArrayInputStream(htmlString.toString().getBytes()); // Bild einfgen String url = "http://www.mmbbs.de/fileadmin/template/mmbbs/gfx/mmbbs_logo_druck.gif"; Image image = Image.getInstance(url); image.setAbsolutePosition(45f, 720f); image.scalePercent(50f); document.add(image); XMLWorkerHelper.getInstance().parseXHtml(writer, document, is); document.close(); return document; }
From source file:de.tuttas.servlets.DokuServlet.java
private Document createAnwesenheit(Klasse kl, String kopf, Date parsedFrom, Date parsedTo, OutputStream out, int filter1Id, int filter2Id) throws ParseException, IOException, DocumentException { Document document = new Document(); /* Basic PDF Creation inside servlet */ PdfWriter writer = PdfWriter.getInstance(document, out); StringBuilder htmlString = new StringBuilder(); htmlString.append(kopf);/*w w w . j av a 2 s. co m*/ /* Anwesenheit einfgen */ TypedQuery<AnwesenheitEintrag> query = em.createNamedQuery("findAnwesenheitbyKlasse", AnwesenheitEintrag.class); query.setParameter("paramKName", kl.getKNAME()); query.setParameter("paramFromDate", new java.sql.Date(parsedFrom.getTime())); query.setParameter("paramToDate", new java.sql.Date(parsedTo.getTime())); Log.d("setze From auf " + new java.sql.Date(parsedFrom.getTime())); List<AnwesenheitObjekt> anwesenheit = getData(query); /** * Termindaten holen */ Termine t1 = null; Termine t2 = null; if (filter1Id != -1) { t1 = em.find(Termine.class, filter1Id); } if (filter2Id != -1) { t2 = em.find(Termine.class, filter2Id); } List<Termin> termine = null; TypedQuery<Termin> tquery = null; if (filter1Id != 0) { // zwei Filter if (filter2Id != 0) { tquery = em.createNamedQuery("findAllTermineTwoFilters", Termin.class); tquery.setParameter("filter1", t1.getId()); tquery.setParameter("filter2", t2.getId()); tquery.setParameter("fromDate", new java.sql.Date(parsedFrom.getTime())); tquery.setParameter("toDate", new java.sql.Date(parsedTo.getTime())); termine = tquery.getResultList(); } // nur Filter1 else { tquery = em.createNamedQuery("findAllTermineOneFilter", Termin.class); tquery.setParameter("filter1", t1.getId()); tquery.setParameter("fromDate", new java.sql.Date(parsedFrom.getTime())); tquery.setParameter("toDate", new java.sql.Date(parsedTo.getTime())); termine = tquery.getResultList(); } } else { // nur Filter2 if (filter2Id != 0) { tquery = em.createNamedQuery("findAllTermineOneFilter", Termin.class); tquery.setParameter("filter1", t2.getId()); tquery.setParameter("fromDate", new java.sql.Date(parsedFrom.getTime())); tquery.setParameter("toDate", new java.sql.Date(parsedTo.getTime())); termine = tquery.getResultList(); } // kein Filter, Termine so generieren else { termine = new ArrayList<>(); Date current = new Date(parsedFrom.getTime()); parsedTo.setTime(parsedTo.getTime() + 1000); while (current.before(parsedTo)) { termine.add(new Termin(new Timestamp(current.getTime()))); Log.d("Erzeuge neuen Termin:" + new Termin(new Timestamp(current.getTime()))); current.setTime(current.getTime() + 24 * 60 * 60 * 1000); } } } Log.d("Result List:" + anwesenheit); GregorianCalendar c = (GregorianCalendar) GregorianCalendar.getInstance(); c.setTime(parsedFrom); String tagZeile = ""; document.open(); Query q = em.createNamedQuery("findSchuelerEinerBenanntenKlasse"); q.setParameter("paramNameKlasse", kl.getKNAME()); List<Schueler> schueler = q.getResultList(); Date current = new Date(parsedFrom.getTime()); Log.d("Current=" + current + " TO=" + parsedTo + " From=" + parsedFrom + " Termine=" + termine.size()); int spalte = 0; for (spalte = 0; spalte < termine.size(); spalte++) { tagZeile += "<table align='center' width='100%' style=\"border: 2px solid black; border-collapse: collapse;\">\n"; tagZeile += ("<tr >\n"); tagZeile += ("<td width='25%' style=\"font-size: 14;border: 1px solid black;\"><b>Name</b></td>\n"); // Zeile f. Tage (Headline) Log.d("Spalte ist nun " + spalte); int i = 0; for (i = 0; i < 7 && spalte + i < termine.size(); i++) { current = new Date(termine.get(spalte + i).getDate().getTime()); c.setTime(current); if (c.get(GregorianCalendar.DAY_OF_WEEK) == 1 || c.get(GregorianCalendar.DAY_OF_WEEK) == 7) { tagZeile += ("<td align=\"center\" style=\"padding:5px; background-color: #cccccc; font-size: 12;border: 1px solid black;\">" + DatumUtil.getWochentag(c.get(GregorianCalendar.DAY_OF_WEEK)) + "<br></br>" + c.get(GregorianCalendar.DATE) + "." + (c.get(GregorianCalendar.MONTH) + 1) + "." + c.get(GregorianCalendar.YEAR) + "</td>\n"); } else { tagZeile += ("<td align=\"center\" style=\"padding: 5px; font-size: 12;border: 1px solid black;\">" + DatumUtil.getWochentag(c.get(GregorianCalendar.DAY_OF_WEEK)) + "<br></br>" + c.get(GregorianCalendar.DATE) + "." + (c.get(GregorianCalendar.MONTH) + 1) + "." + c.get(GregorianCalendar.YEAR) + "</td>\n"); } Log.d("Spalte " + (i + spalte) + " Datum=" + current); } Log.d("Head aufgebaut"); tagZeile += "</tr>\n"; // Zeile pro Name for (Schueler s : schueler) { tagZeile += "<tr>\n"; tagZeile += ("<td width='20%' style=\"padding: 5px;font-size: 12;border: 1px solid black;\"><b>" + s.getVNAME() + " " + s.getNNAME() + "</b></td>\n"); // Zeile f. Tage //Log.d("Zeile f. Schler " + s.getNNAME()); for (i = 0; i < 7 && spalte + i < termine.size(); i++) { current = new Date(termine.get(spalte + i).getDate().getTime()); c.setTime(current); if (c.get(GregorianCalendar.DAY_OF_WEEK) == 1 || c.get(GregorianCalendar.DAY_OF_WEEK) == 7) { tagZeile += ("<td style=\"background-color:#cccccc;font-size: 11;border: 1px solid black;\">" + findVermerk(s.getId(), current, anwesenheit) + "</td>\n"); } else { tagZeile += ("<td style=\"font-size: 11;border: 1px solid black;\">" + findVermerk(s.getId(), current, anwesenheit) + "</td>\n"); } Log.d("Zeile f. Schler " + s.getNNAME() + " Datum " + current); } tagZeile += "</tr>\n"; } Log.d("Rumpf aufgebaut"); spalte = spalte + i - 1; // neue Seite bei 7 Terminen if (i == 7) { tagZeile += "</table>\n"; htmlString.append(tagZeile); InputStream is = new ByteArrayInputStream(htmlString.toString().getBytes()); // Bild einfgen String url = "http://www.mmbbs.de/fileadmin/template/mmbbs/gfx/mmbbs_logo_druck.gif"; Image image = Image.getInstance(url); image.setAbsolutePosition(45f, 720f); image.scalePercent(50f); document.add(image); XMLWorkerHelper.getInstance().parseXHtml(writer, document, is); document.newPage(); Log.d("neue Seite"); htmlString = new StringBuilder(); tagZeile = ""; htmlString.append(kopf); } Log.d("SPalte ist " + spalte + " Termine=" + termine.size()); } Log.d("Ende der ForSchleife spalte=" + spalte); // den Rest der Seite noch drucken if (spalte % 7 != 0) { tagZeile += "</table>\n"; htmlString.append(tagZeile); Log.d("Rest Seite erzeugen"); //Log.d("html String =" + htmlString.toString()); //document.add(new Paragraph("Tutorial to Generate PDF using Servlet")); InputStream is = new ByteArrayInputStream(htmlString.toString().getBytes()); // Bild einfgen String url = "http://www.mmbbs.de/fileadmin/template/mmbbs/gfx/mmbbs_logo_druck.gif"; Image image = Image.getInstance(url); image.setAbsolutePosition(45f, 720f); image.scalePercent(50f); document.add(image); Log.d("writer=" + writer + " document=" + document + " is=" + is); XMLWorkerHelper.getInstance().parseXHtml(writer, document, is); } document.close(); return document; }
From source file:de.tuttas.servlets.DokuServlet.java
private Document createPortfolio(Klasse kl, OutputStream out) throws DocumentException, IOException { Document document = new Document(); /* Basic PDF Creation inside servlet */ PdfWriter writer = PdfWriter.getInstance(document, out); StringBuilder htmlString = new StringBuilder(); document.open();//from w w w .ja va 2s. c o m Query q = em.createNamedQuery("findSchuelerEinerBenanntenKlasse"); q.setParameter("paramNameKlasse", kl.getKNAME()); List<Schueler> schueler = q.getResultList(); Query q2 = em.createNamedQuery("findPortfolio"); q2.setParameter("paramIdKlasse", kl.getId()); List<Noten_all> portfolio = q2.getResultList(); Query q3 = em.createNamedQuery("getLatestSchuljahr").setMaxResults(1); List<Schuljahr> schuljahr = q3.getResultList(); Log.d("Schuljahr = " + schuljahr.get(0).getNAME() + " Zeugnisdatum=" + schuljahr.get(0).getZEUGNISDATUM()); Log.d("Noten_all=" + portfolio); for (Schueler s : schueler) { htmlString.append("<h2 align=\"center\">Multi Media Berufsbildende Schulen</h2>"); htmlString.append("<h2 align=\"center\">der Region Hannover</h2>"); htmlString.append("<hr></hr>"); htmlString.append("<h1 align=\"center\">Portfolio</h1>"); htmlString.append("<h3 align=\"center\">ber besuchte Zusatzkurse</h3>"); htmlString.append("<p align=\"center\">fr " + s.getVNAME() + " " + s.getNNAME() + " geb. am " + toReadable(s.getGEBDAT()) + "</p>"); htmlString.append("<br></br>"); htmlString.append("<hr></hr>"); htmlString.append("<br></br>"); int oldSchuljahr = -1; for (Noten_all p : portfolio) { Log.d("Suche fr Schler ID=" + s.getId() + " einen Portfolioeintrag, found ID=" + p.getID_SCHUELER()); if (p.getID_SCHUELER().intValue() == s.getId().intValue()) { Log.d("gefunden!"); Schuljahr sj = em.find(Schuljahr.class, p.getID_SCHULJAHR()); Klasse_all ka = em.find(Klasse_all.class, p.getID_KLASSEN_ALL()); Log.d(" Schler gefunden sj=" + sj.getNAME() + " ka=" + ka.getTitel()); if (oldSchuljahr != sj.getID()) { htmlString.append("<h3>Schuljahr " + sj.getNAME() + "</h3>"); oldSchuljahr = sj.getID(); } htmlString.append("<table>"); htmlString.append("<tr>"); htmlString.append( "<td width=\"70%\"><b>" + ka.getTitel() + "</b><p>" + ka.getNotiz() + "</p></td>"); htmlString.append("<td>" + NotenUtil.getNote(p.getWERT()) + "</td>"); htmlString.append("</tr>"); htmlString.append("</table>"); htmlString.append("<p> </p>"); } } htmlString.append("<br></br>"); htmlString.append("<br></br>"); htmlString.append("<b>Hannover, " + toReadable(schuljahr.get(0).getZEUGNISDATUM()) + "</b>"); htmlString.append("<br></br>"); htmlString.append("<br></br>"); htmlString.append("<br></br>"); htmlString.append("<br></br>"); htmlString.append("<table width=\"100%\" >"); htmlString.append("<tr>"); htmlString.append( "<td style=\"font-size: 10;border-bottom: 0.5px solid #888888\" width=\"40%\" align=\"center\"> </td>"); htmlString.append("<td></td>"); htmlString.append("</tr>"); htmlString.append("<tr>"); htmlString.append( "<td style=\"font-size: 10;\" width=\"40%\" align=\"center\">Klassenlehrerin/Klassenlehrer</td>"); htmlString.append("<td> </td>"); htmlString.append("</tr>"); htmlString.append("<tr>"); htmlString.append( "<td style=\"font-size: 9;border-top: 0.5px solid #888888\" colspan=\"2\">Noten: sehr gut (1), gut (2), befriedigend (3), ausreichend (4), mangelhaft (5), ungengend (6)<br></br>*) Angegeben ist die durchschnittliche Unterrichtsstundenzahl pro Schuljahr.<br></br>*) In Kursen mit insgesamt 12 Unterrichtsstunden findet keine Bewertung statt.</td>"); htmlString.append("</tr>"); htmlString.append("</table>"); InputStream is = new ByteArrayInputStream(htmlString.toString().getBytes()); // Bild einfgen String url = "http://www.mmbbs.de/fileadmin/template/mmbbs/gfx/mmbbs_logo_druck.gif"; Image image = Image.getInstance(url); image.setAbsolutePosition(480f, 730f); image.scalePercent(40f); Log.d("Image=" + image); document.add(image); XMLWorkerHelper.getInstance().parseXHtml(writer, document, is); htmlString = new StringBuilder(); document.newPage(); } document.close(); return document; }
From source file:de.tuttas.servlets.DokuServlet.java
private Document createVertretungsliste(Date parsedFrom, Date parsedTo, OutputStream out) throws DocumentException, BadElementException, IOException { Document document = new Document(); Log.d("create Vertretungsliste von " + parsedFrom.toString() + " bis" + parsedTo.toString()); GregorianCalendar cf = (GregorianCalendar) GregorianCalendar.getInstance(); cf.setTime(parsedFrom);//w w w .j a v a 2s.co m GregorianCalendar ct = (GregorianCalendar) GregorianCalendar.getInstance(); ct.setTime(parsedTo); /* Basic PDF Creation inside servlet */ PdfWriter writer = PdfWriter.getInstance(document, out); StringBuilder htmlString = new StringBuilder(); String kopf = ""; kopf += ("<table border='1' align='center' width='100%'>"); kopf += ("<tr>"); kopf += ("<td rowspan=\"3\" width='150px'></td>"); kopf += ("<td align='center'><h2>Multi Media Berufsbildende Schulen Hannover</h2></td>"); kopf += ("<td colspan=\"2\" align='center'><b>Digitales Klassenbuch Vertretungsliste</b></td>"); kopf += ("</tr>"); kopf += ("<tr>"); kopf += ("<td align='center' rowspan=\"2\"><h3>von " + toReadableDate(cf) + " bis " + toReadableDate(ct) + "</h3></td>"); kopf += ("<td style=\"font-size: 11;padding:4px;height:30px;\">Verantwortlicher: BO </td>"); kopf += ("<td style=\"font-size: 11;padding:4px;\">geprft</td>"); kopf += ("</tr>"); kopf += ("<tr>"); DateFormat df = new SimpleDateFormat("dd.MM.yyyy"); Calendar c = df.getCalendar(); c.setTimeInMillis(System.currentTimeMillis()); String dat = c.get(Calendar.DAY_OF_MONTH) + "." + (c.get(Calendar.MONTH) + 1) + "." + c.get(Calendar.YEAR); kopf += ("<td style=\"font-size: 11;\">Ausdruck am: " + dat + "</td>"); kopf += ("<td style=\"font-size: 11;\">Datum</td>"); kopf += ("</tr>"); kopf += ("</table>"); kopf += ("<p> </p>"); htmlString.append(kopf); document.open(); Query qb = em.createNamedQuery("findVertretungbyDate"); qb.setParameter("paramFromDate", parsedFrom); qb.setParameter("paramToDate", parsedTo); List<Vertretung> vl = qb.getResultList(); Log.d("Result Liste = " + vl); for (Vertretung v : vl) { htmlString.append("<h3>Absenz von " + v.getAbsenzVon() + " am " + toReadableFromat(v.getAbsenzAm()) + " eingereicht von " + v.getEingereichtVon() + " am " + toReadableFromat(v.getEingereichtAm()) + "</h3>"); htmlString.append("<h4>" + v.getKommentar() + "</h4>"); htmlString.append("<p> </p>"); htmlString.append("<table border='0.5' align='center' width='100%'>"); htmlString.append("<tr>"); htmlString.append( "<td width='10%' style=\"padding:4px;\">Stunde</td><td width='15%' style=\"padding:4px;\">Klasse</td><td width='15%' style=\"padding:4px;\">Aktion</td><td width='10%' style=\"padding:4px;\">Vertreter</td><td style=\"padding:4px;\">Kommentar</td>"); htmlString.append("</tr>"); JSONParser jsonParser = new JSONParser(); try { JSONArray ja = (JSONArray) jsonParser.parse(v.getJsonString()); for (int i = 0; i < ja.size(); i++) { JSONObject jo = (JSONObject) ja.get(i); htmlString.append("<tr>"); htmlString.append( "<td style=\"font-size: 11;padding:4px;\" width='10%'>" + jo.get("stunde") + "</td>"); htmlString.append( "<td style=\"font-size: 11;padding:4px;\" width='15%'>" + jo.get("Klasse") + "</td>"); htmlString.append( "<td style=\"font-size: 11;padding:4px;\" width='15%'>" + jo.get("Aktion") + "</td>"); htmlString.append("<td style=\"font-size: 11;padding:4px;\" width='10%'>" + jo.get("Vertreter") + "</td>"); htmlString.append("<td style=\"font-size: 11;padding:4px;\">" + jo.get("Kommentar") + "</td>"); htmlString.append("</tr>"); } } catch (org.json.simple.parser.ParseException ex) { ex.printStackTrace(); Logger.getLogger(DokuServlet.class.getName()).log(Level.SEVERE, null, ex); } htmlString.append("</table>"); htmlString.append("<p></p>"); } //document.add(new Paragraph("Tutorial to Generate PDF using Servlet")); InputStream is = new ByteArrayInputStream(htmlString.toString().getBytes()); // Bild einfgen String url = "http://www.mmbbs.de/fileadmin/template/mmbbs/gfx/mmbbs_logo_druck.gif"; Image image = Image.getInstance(url); image.setAbsolutePosition(45f, 720f); image.scalePercent(50f); document.add(image); XMLWorkerHelper.getInstance().parseXHtml(writer, document, is); document.close(); return document; }