List of usage examples for com.itextpdf.tool.xml XMLWorkerHelper getInstance
public synchronized static XMLWorkerHelper getInstance()
From source file:de.tuttas.servlets.DokuServlet.java
private Document createVerlauf(Klasse kl, String kopf, Date parsedFrom, Date parsedTo, OutputStream out, String filter1, String filter2, String me) 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 a va 2 s . c o m /* Verlauf einfgen */ Query query = em.createNamedQuery("findVerlaufbyKlasse"); query.setParameter("paramKName", kl.getKNAME()); query.setParameter("paramFromDate", new java.sql.Date(parsedFrom.getTime())); query.setParameter("paramToDate", new java.sql.Date(parsedTo.getTime())); List<Verlauf> overlauf = query.getResultList(); List<Verlauf> verlauf = new ArrayList<>(); /** * Filtern der oVerlauf Liste */ for (Verlauf v : overlauf) { if (filter1.equals("eigeneEintraege")) { if (v.getID_LEHRER().equals(me)) { if (filter2.equals("alle") || filter2.equals(v.getID_LERNFELD())) { verlauf.add(v); } } } else { if (filter2.equals("alle") || filter2.equals(v.getID_LERNFELD())) { verlauf.add(v); } } } Log.d("Result List:" + verlauf); htmlString.append( "<table align='center' width='100%' style=\"border: 2px solid black; border-collapse: collapse;\">"); String tagZeile = Verlauf.getTRHead(); htmlString.append(tagZeile); String tag = " "; int kw = -1; document.open(); boolean firstPage = true; for (Verlauf v : verlauf) { String str = v.getDATUM().toString(); if (str.compareTo(tag) == 0) { htmlString.append(v.toHTML()); } // ein neuer Tag else { if (kw == -1) { kw = v.getKw(); } // Jede Woche eine neue Seite! if (!firstPage && kw != v.getKw()) { kw = v.getKw(); htmlString.append("</table>"); 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); XMLWorkerHelper.getInstance().parseXHtml(writer, document, is); document.newPage(); htmlString = new StringBuilder(); htmlString.append(kopf); htmlString.append( "<table align='center' width='100%' style=\"border: 2px solid black; border-collapse: collapse;\">"); htmlString.append(tagZeile); Log.d("weiter mit neuer Seite"); } htmlString.append("<tr>"); htmlString.append( "<td colspan=\"6\" align=\"center\" style=\"background-color: #cccccc; padding:4px;border: 1px solid black;\">KW " + v.getKw() + " / " + v.getWochentag() + " " + str.substring(0, str.indexOf(" ")) + "</td>"); htmlString.append("</tr>"); htmlString.append(v.toHTML()); firstPage = false; tag = str; } } htmlString.append("</table>"); Log.d("html String Rest=" + 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); XMLWorkerHelper.getInstance().parseXHtml(writer, document, is); document.close(); return document; }
From source file:de.tuttas.servlets.DokuServlet.java
private Document printHead(PdfWriter writer, Document document, StringBuilder htmlString, OutputStream out, Image image) throws DocumentException, BadElementException, IOException { // Dokument erzeugen InputStream is = new ByteArrayInputStream(htmlString.toString().getBytes()); Log.d("document=" + document + " image=" + image); document.add(image);/*from w w w . jav a2 s .com*/ XMLWorkerHelper.getInstance().parseXHtml(writer, document, is); return document; }
From source file:de.tuttas.servlets.MailServlet.java
private void createPdf(HttpServletResponse response, String recipient, String content, String klasse, String lehrerId) {/*from ww w. ja v a 2 s. c om*/ OutputStream out = null; try { out = response.getOutputStream(); Log.d("Mail versandt erfolgreich erzeuge pdf Dokumentation! out=" + out); response.setContentType("application/pdf"); response.addHeader("Content-Disposition", "attachment; filename=Fehlzeitenbericht_" + recipient + ".pdf"); 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 Fehlzeitenbericht</b></td>"); kopf += ("</tr>"); kopf += ("<tr>"); kopf += ("<td align='center' rowspan=\"2\"><h3>Klasse/ Kurs: " + klasse + "</h3></td>"); kopf += ("<td style=\"font-size: 11;\">Verantwortlicher: " + lehrerId + "</td>"); kopf += ("<td style=\"font-size: 11;\">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>"); Document document = new Document(); /* Basic PDF Creation inside servlet */ PdfWriter writer = PdfWriter.getInstance(document, out); StringBuilder htmlString = new StringBuilder(); htmlString.append(kopf); String body = ""; body += "<table align='center' width='100%'>"; body += "<tr><td><h3 align=\"center\">Empfnger:" + recipient + "</h3></td></tr>"; Log.d("Content=" + StringUtil.addBR(content)); body += "<tr><td style=\"font-size: 12;\">" + StringUtil.addBR(content) + "</td></tr>"; body += "</table>"; htmlString.append(body); 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; try { image = Image.getInstance(url); image.setAbsolutePosition(45f, 720f); image.scalePercent(50f); if (image != null) { document.add(image); } } catch (BadElementException ex) { Logger.getLogger(MailServlet.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(MailServlet.class.getName()).log(Level.SEVERE, null, ex); } XMLWorkerHelper.getInstance().parseXHtml(writer, document, is); document.close(); out.close(); } catch (IOException ex) { Logger.getLogger(MailServlet.class.getName()).log(Level.SEVERE, null, ex); } catch (DocumentException ex) { Logger.getLogger(MailServlet.class.getName()).log(Level.SEVERE, null, ex); } finally { try { if (out != null) { out.close(); } } catch (IOException ex) { Logger.getLogger(MailServlet.class.getName()).log(Level.SEVERE, null, ex); } } }
From source file:EditorKits.DocumentExporter.java
public static void ConvertToPDF(String htmlString, String output) { String out = ""; out = htmlString.substring(0, htmlString.indexOf("<body>")).replaceAll("<br>", ""); out += htmlString.substring(htmlString.indexOf("<body>"), htmlString.indexOf("</body>")); out += htmlString.substring(htmlString.indexOf("</body>"), htmlString.length()).replaceAll("<br>", ""); out = out.replaceAll("<br>", "<br/>"); try {//from w w w . j a va 2 s . c om Document document = new Document(PageSize.A4); PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(output)); document.open(); document.addCreationDate(); XMLWorkerHelper worker = XMLWorkerHelper.getInstance(); worker.parseXHtml(pdfWriter, document, new StringReader(out)); document.close(); System.out.println("Done."); } catch (FileNotFoundException | DocumentException e) { } catch (IOException ex) { Logger.getLogger(DocumentExporter.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:edu.chl.proton.control.MarkdownTabController.java
License:Open Source License
/** * Generates a PDF from the HTML String that getHTML() in IDocumentHandler returns. * @throws IOException if typecasting to WebView fails. * @throws DocumentException if the PDF cannot be created. *//*w ww. j a v a2 s. co m*/ @FXML public void onClickGeneratePDF() throws IOException, DocumentException { String path = file.getCurrentDirectory().getPath() + "/untitled.pdf"; String title = "Output filepath"; TextPrompt prompt = new TextPrompt(stage.getStage(), title, path); if ((path = prompt.getResult()) != null) { com.itextpdf.text.Document doc = new com.itextpdf.text.Document(); PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(path)); writer.setInitialLeading(12); doc.open(); XMLWorkerHelper.getInstance().parseXHtml(writer, doc, new ByteArrayInputStream(document.getHTML().getBytes())); doc.close(); } }
From source file:it.digitalhumanities.dhcpublisher.DHCPublisher.java
private void convertFile(final File subDir) throws DocumentException, IOException { File[] htmlFiles = subDir.listFiles(new FilenameFilter() { @Override/*from w ww . j a v a2 s . co m*/ public boolean accept(File dir, String name) { return name.endsWith(".html"); } }); if (htmlFiles.length > 0) { File htmlFile = htmlFiles[0]; String targetName = htmlFile.getName().substring(0, htmlFile.getName().length() - 4) + "pdf"; Document document = new Document(); File targetFile = new File(subDir, targetName); if (targetFile.exists()) { targetFile.delete(); } try (FileOutputStream fos = new FileOutputStream(targetFile)) { PdfWriter writer = PdfWriter.getInstance(document, fos); writer.getAcroForm().setNeedAppearances(true); document.open(); HtmlPipelineContext htmlContext = new HtmlPipelineContext(null); htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory()); htmlContext.setImageProvider(new AbstractImageProvider() { public String getImageRootPath() { return subDir.getAbsolutePath(); } }); CSSResolver cssResolver = XMLWorkerHelper.getInstance().getDefaultCssResolver(true); Pipeline<?> pipeline = new CssResolverPipeline(cssResolver, new HtmlPipeline(htmlContext, new PdfWriterPipeline(document, writer))); XMLWorker worker = new XMLWorker(pipeline, true); XMLParser p = new XMLParser(worker); try (FileInputStream fis = new FileInputStream(htmlFile)) { p.parse(fis); } finally { document.close(); } } } else { throw new IllegalArgumentException(subDir + " does not contain HTML files!"); } }
From source file:memoire.Exercises.java
public void CreatePdf44(ArrayList<String> list, String nameFile) { try {/*from www. j a v a 2 s . co m*/ com.itextpdf.text.Document document = new com.itextpdf.text.Document(com.itextpdf.text.PageSize.A4); String fileNameWithPath = "Examen00" + nameFile + ".pdf"; FileOutputStream fos = new FileOutputStream(fileNameWithPath); com.itextpdf.text.pdf.PdfWriter pdfWriter = com.itextpdf.text.pdf.PdfWriter.getInstance(document, fos); Rectangle rectangle = new Rectangle(30, 30, 550, 800); pdfWriter.setBoxSize("rectangle", rectangle); HeaderAndFooterPdfPageEventHelper headerAndFooter = new HeaderAndFooterPdfPageEventHelper(); //pdfWriter.setPageEvent(headerAndFooter); document.open(); com.itextpdf.text.html.simpleparser.HTMLWorker htmlWorker = new com.itextpdf.text.html.simpleparser.HTMLWorker( document); try { document.newPage(); //Rectangle page = document.getPageSize(); //PdfPTable head = new PdfPTable(1); //head.setHorizontalAlignment(10); // document.add(new Paragraph(Jsoup.parse(list.get(0)).text())); // headerAndFooter.onStartPage(pdfWriter, document,Jsoup.parse(list.get(0)).text()); //System.out.println(list.get(0)); for (int j = 0; j < NbrPartie + 1; j++) { // System.out.println(Jsoup.parse(list.get(j)).text()); // htmlWorker.parse(new StringReader(list.get(j))); XMLWorkerHelper.getInstance().parseXHtml(pdfWriter, document, new FileInputStream(list.get(j))); } //head.setTotalWidth(page.getWidth() - document.leftMargin() - document.rightMargin()); //float number=page.getHeight() - document.topMargin()+ head.getTotalHeight(); //head.writeSelectedRows(0,(int)page.getWidth(), document.leftMargin(),page.getHeight() - document.topMargin()+ head.getTotalHeight(),pdfWriter.getDirectContent()); //pdfWriter.getPageNumber(); pdfWriter.flush(); document.close(); fos.close(); } catch (Exception e) { System.out.println("nnn"); JOptionPane.showMessageDialog(null, e.getMessage()); } } catch (Exception e) { JOptionPane.showMessageDialog(null, e.toString()); } }
From source file:net.duckling.ddl.web.controller.LynxDDocController.java
License:Apache License
@RequestMapping(params = "func=exportPdf") public void exportPdf(HttpServletRequest request, HttpServletResponse response, @PathVariable("rid") Integer rid) { VWBContext context = VWBContext.createContext(request, UrlPatterns.T_PAGE, rid, LynxConstants.TYPE_PAGE); int tid = VWBContext.getCurrentTid(); Team team = teamService.getTeamByID(tid); Resource r = resourceService.getResource(rid); response.setHeader("Content-disposition", Browser.encodeFileName(request.getHeader("USER-AGENT"), r.getTitle() + ".pdf")); response.setContentType("application/pdf"); PageRender render = resourceOperateService.getPageRender(tid, rid); String html = renderingService.getHTML(context, render); StringBuffer buf = new StringBuffer(); List<String> imagePathList = new ArrayList<String>(); buf.append("<html><head><title>" + r.getTitle() + "</title>"); buf.append("<link type=\"text/css\" rel=\"stylesheet\" href=\"" + context.getBaseURL() + "/jsp/aone/css/css.css\" />"); buf.append("<style type=\"text/css\"> *{ font-family: simsun; } </style>"); buf.append("</head>"); buf.append("<body style=\"margin:0;\">"); buf.append("<div id=\"DCT_viewcontent\">"); html = processImagePath(html, team.getName(), imagePathList, request); buf.append(html);/*from w w w .java2 s. co m*/ buf.append("</div>"); buf.append("</body></html>"); Document document = new Document(); PdfWriter writer; try { String fontPath = getFontPath("simsun.ttf"); XMLWorkerFontProvider fontImp = new XMLWorkerFontProvider(fontPath); fontImp.register(fontPath, "simsun"); FontFactory.setFontImp(fontImp); writer = PdfWriter.getInstance(document, response.getOutputStream()); document.open(); InputStreamReader isr = new InputStreamReader( new ByteArrayInputStream(buf.toString().getBytes(LynxConstants.UTF8)), LynxConstants.UTF8); XMLWorkerHelper.getInstance().parseXHtml(writer, document, isr); } catch (DocumentException e) { LOG.error("export pdf error. {rid:" + r.getRid() + "} : " + e.getMessage()); } catch (IOException e) { LOG.error("export pdf Error. {rid:" + r.getRid() + "} : " + e.getMessage()); } finally { try { document.close(); } catch (Exception e) { LOG.warn(e.getMessage()); } ; } // for (String path : imagePathList) { FileUtil.deleteFile(path); } }
From source file:org.gbif.ipt.task.Eml2Pdf.java
private static void parseHTML(Document doc, String html, PdfWriter pdf) throws IOException { InputStream is = new ByteArrayInputStream(html.getBytes()); XMLWorkerHelper worker = XMLWorkerHelper.getInstance(); worker.parseXHtml(pdf, doc, is);//from w w w . java2s . c o m //worker.parseXHtml(pdf, doc, new StringReader(html)); }
From source file:org.jaqpot.core.service.data.ReportService.java
public void report2PDF(Report report, OutputStream os) { Document document = new Document(); document.setPageSize(PageSize.A4);/*from w w w . j a va 2s . co m*/ document.setMargins(50, 45, 80, 40); document.setMarginMirroring(false); try { PdfWriter writer = PdfWriter.getInstance(document, os); TableHeader event = new TableHeader(); writer.setPageEvent(event); } catch (DocumentException ex) { throw new InternalServerErrorException(ex); } document.open(); /** setup fonts for pdf */ Font ffont = new Font(Font.FontFamily.UNDEFINED, 9, Font.ITALIC); Font chapterFont = FontFactory.getFont(FontFactory.HELVETICA, 16, Font.BOLDITALIC); Font paragraphFontBold = FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD); Font paragraphFont = FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL); Font tableFont = FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD); /** print link to jaqpot*/ Chunk chunk = new Chunk( "This report has been automatically created by the JaqpotQuatro report service. Click here to navigate to our official webpage", ffont); chunk.setAnchor("http://www.jaqpot.org"); Paragraph paragraph = new Paragraph(chunk); paragraph.add(Chunk.NEWLINE); Chapter chapter = new Chapter(paragraph, 1); chapter.setNumberDepth(0); /** get title */ String title = null; if (report.getMeta() != null && report.getMeta().getTitles() != null && !report.getMeta().getTitles().isEmpty()) title = report.getMeta().getTitles().iterator().next(); /** print title aligned centered in page */ if (title == null) title = "Report"; chunk = new Chunk(title, chapterFont); paragraph = new Paragraph(chunk); paragraph.setAlignment(Element.ALIGN_CENTER); paragraph.add(Chunk.NEWLINE); paragraph.add(Chunk.NEWLINE); chapter.add(paragraph); /** report Description */ if (report.getMeta() != null && report.getMeta().getDescriptions() != null && !report.getMeta().getDescriptions().isEmpty() && !report.getMeta().getDescriptions().toString().equalsIgnoreCase("null")) { paragraph = new Paragraph(); paragraph.add(new Chunk("Description: ", paragraphFontBold)); paragraph.add(new Chunk(report.getMeta().getDescriptions().toString().replaceAll(":http", ": http"), paragraphFont)); chapter.add(paragraph); chapter.add(Chunk.NEWLINE); } /** report model, algorithm and/or dataset id */ if (report.getMeta() != null && report.getMeta().getHasSources() != null && !report.getMeta().getHasSources().isEmpty() && !report.getMeta().getDescriptions().isEmpty() && !report.getMeta().getDescriptions().toString().equalsIgnoreCase("null")) { Iterator<String> sources = report.getMeta().getHasSources().iterator(); sources.forEachRemaining(o -> { if (o != null) { String[] source = o.split("/"); if (source[source.length - 2].trim().equals("model") || source[source.length - 2].trim().equals("algorithm") || source[source.length - 2].trim().equals("dataset")) { Paragraph paragraph1 = new Paragraph(); paragraph1.add(new Chunk(source[source.length - 2].substring(0, 1).toUpperCase() + source[source.length - 2].substring(1) + ": ", paragraphFontBold)); paragraph1.add(new Chunk(source[source.length - 1], paragraphFont)); chapter.add(paragraph1); chapter.add(Chunk.NEWLINE); } } }); } /** report single calculations */ report.getSingleCalculations().forEach((key, value) -> { Paragraph paragraph1 = new Paragraph(); paragraph1 = new Paragraph(); paragraph1.add(new Chunk(key + ": ", paragraphFontBold)); paragraph1.add(new Chunk(value.toString().trim().replaceAll(" +", " "), paragraphFont)); chapter.add(paragraph1); chapter.add(Chunk.NEWLINE); }); /** report date of completion */ if (report.getMeta() != null && report.getMeta().getDate() != null) { Paragraph paragraph1 = new Paragraph(); paragraph1.add(new Chunk("Procedure completed on: ", paragraphFontBold)); paragraph1.add(new Chunk(report.getMeta().getDate().toString(), paragraphFont)); chapter.add(paragraph1); chapter.add(Chunk.NEWLINE); } try { document.add(chapter); } catch (DocumentException ex) { throw new InternalServerErrorException(ex); } Integer chapterNumber = 0; /** report all_data */ for (Entry<String, ArrayCalculation> entry : report.getArrayCalculations().entrySet()) { String label = entry.getKey(); ArrayCalculation ac = entry.getValue(); PdfPTable table = new PdfPTable(ac.getColNames().size() + 1); for (Entry<String, List<Object>> row : ac.getValues().entrySet()) { try { XMLWorkerHelper.getInstance().parseXHtml(w -> { if (w instanceof WritableElement) { List<Element> elements = ((WritableElement) w).elements(); for (Element element : elements) { PdfPCell pdfCell = new PdfPCell(); pdfCell.addElement(element); table.addCell(pdfCell); } } }, new StringReader(row.getKey())); } catch (IOException e) { e.printStackTrace(); } for (Object o : row.getValue()) { table.addCell(o.toString()); } table.completeRow(); } try { Chunk tableChunk = new Chunk(label, tableFont); Chapter tableChapter = new Chapter(new Paragraph(tableChunk), ++chapterNumber); tableChapter.add(Chunk.NEWLINE); tableChapter.add(table); document.newPage(); document.add(tableChapter); } catch (DocumentException ex) { throw new InternalServerErrorException(ex); } } /** report plots */ for (Entry<String, String> entry : report.getFigures().entrySet()) { try { byte[] valueDecoded = Base64.decodeBase64(entry.getValue()); Image l = Image.getInstance(valueDecoded); document.newPage(); //image starts at the half's half of pdf page l.setAbsolutePosition(0, (document.getPageSize().getHeight() / 2 / 2)); l.scaleToFit(document.getPageSize()); Chunk tableChunk = new Chunk(entry.getKey(), tableFont); Chapter tableChapter = new Chapter(new Paragraph(tableChunk), ++chapterNumber); tableChapter.add(l); document.add(tableChapter); } catch (IOException | DocumentException e) { e.printStackTrace(); } } document.close(); }