List of usage examples for com.itextpdf.tool.xml.parser XMLParser parse
public void parse(final InputStream in, final Charset charSet) throws IOException
From source file:com.algoboss.erp.util.report.PDFExporter2.java
License:Apache License
public void export(FacesContext context, String cssstring, String htmlstring, String filename) throws IOException { try {//from w ww . j av a 2s .c om InputStream is = new ByteArrayInputStream(htmlstring.getBytes()); ByteArrayOutputStream baos = new ByteArrayOutputStream(); // step 1 Document document = new Document(); // step 2 PdfWriter writer = PdfWriter.getInstance(document, baos); writer.setInitialLeading(12.5f); // step 3 document.open(); HtmlPipelineContext htmlContext = new HtmlPipelineContext(null); htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory()); // CSS CSSResolver cssResolver = new StyleAttrCSSResolver(); String[] cssstringArray = cssstring.split(";"); FacesContext aFacesContext = FacesContext.getCurrentInstance(); ServletContext context2 = (ServletContext) aFacesContext.getExternalContext().getContext(); String realPath = context2.getRealPath("/"); System.out.println(realPath); System.out.println(context2.getContextPath()); //System.out.println(context2.getResource("")); System.out.println(aFacesContext.getExternalContext().getContextName()); System.out.println(aFacesContext.getExternalContext().getRequestContextPath() + aFacesContext.getExternalContext().getRequestServletPath()); //System.out.println(aFacesContext.getExternalContext().getRequestServletPath()); //System.out.println(aFacesContext.getExternalContext().getRequestPathInfo()); //System.out.println(aFacesContext.getExternalContext().getRequestScheme()); //System.out.println(aFacesContext.getExternalContext().getRequestScheme()); //System.out.println(Thread.currentThread().getContextClassLoader().getResource("")); for (int i = 0; i < cssstringArray.length; i++) { String cssHref = cssstringArray[i]; try { URL url = new URL(aFacesContext.getExternalContext().getRequestScheme(), aFacesContext.getExternalContext().getRequestServerName(), aFacesContext.getExternalContext().getRequestServerPort(), cssHref); InputStream csspathtest = url.openStream(); CssFile cssfiletest = XMLWorkerHelper.getCSS(csspathtest); cssResolver.addCss(cssfiletest); } catch (IOException ex) { Logger.getLogger(PDFExporter2.class.getName()).log(Level.SEVERE, null, ex); } //String realPath2 = context2.getRealPath(cssHref); //InputStream csspathtest2 = aFacesContext.getExternalContext().getResourceAsStream(realPath2); //System.out.println(cssfiletest); } Pipeline<?> pipeline = new CssResolverPipeline(cssResolver, new HtmlPipeline(htmlContext, new PdfWriterPipeline(document, writer))); XMLWorker worker = new XMLWorker(pipeline, true); XMLParser p = new XMLParser(worker); p.parse(is, Charset.forName("iso-8859-1"));//new FileInputStream("results/demo2/walden.html")); // step document.close(); // post back... HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse(); response.setContentType("application/pdf"); response.setHeader("Expires", "0"); response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); response.setHeader("Content-Type", "application/pdf"); response.setHeader("Content-disposition", "inline;filename=\"" + filename + "\";"); response.setContentLength(baos.size()); OutputStream os = response.getOutputStream(); baos.writeTo(os); os.flush(); os.close(); context.responseComplete(); } catch (IOException e) { throw new IOException(e.getMessage()); } catch (Exception ex) { Logger.getLogger(PDFExporter2.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:org.freelancertech.poc.itext.ParseHtmlTable1.java
public static byte[] convertHtmlToPdf(String content) throws IOException, DocumentException { final ClassLoader classLoader = ParseHtmlTable1.class.getClassLoader(); try (ByteArrayOutputStream file = new ByteArrayOutputStream(); InputStream is = new ByteArrayInputStream(content.getBytes());) { final Document document = new Document(); final PdfWriter writer = PdfWriter.getInstance(document, file); document.open();// w w w. j a v a 2 s . c o m final TagProcessorFactory tagProcessorFactory = Tags.getHtmlTagProcessorFactory(); tagProcessorFactory.removeProcessor(HTML.Tag.IMG); tagProcessorFactory.addProcessor(new ImageTagProcessor(), HTML.Tag.IMG); final CssFile cssFile = XMLWorkerHelper.getCSS(classLoader.getResourceAsStream(STYLE_FILE_NAME)); final CssFilesImpl cssFiles = new CssFilesImpl(cssFile); //cssFiles.add(XMLWorkerHelper.getInstance().getDefaultCSS()); final StyleAttrCSSResolver cssResolver = new StyleAttrCSSResolver(cssFiles); final HtmlPipelineContext hpc = new HtmlPipelineContext( new CssAppliersImpl(new XMLWorkerFontProvider())); hpc.setAcceptUnknown(true).autoBookmark(true).setTagFactory(tagProcessorFactory); final HtmlPipeline htmlPipeline = new HtmlPipeline(hpc, new PdfWriterPipeline(document, writer)); final Pipeline<?> pipeline = new CssResolverPipeline(cssResolver, htmlPipeline); final XMLWorker worker = new XMLWorker(pipeline, true); final Charset charset = Charset.forName("UTF-8"); final XMLParser xmlParser = new XMLParser(true, worker, charset); xmlParser.parse(is, charset); document.close(); return file.toByteArray(); } }
From source file:org.saiku.web.export.PdfReport.java
License:Apache License
public void populatePdf(Document doc, PdfWriter writer, QueryResult qr) throws Exception { Long start = (new Date()).getTime(); String content = JSConverter.convertToHtml(qr); DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm"); Date date = new Date(); content = "<p>" + "Saiku Export - " + dateFormat.format(date) + "</p><p> </p>" + content; InputStream contentIs = new ByteArrayInputStream(content.getBytes("UTF-8")); Long rhino = (new Date()).getTime(); // CSS//from w w w . j av a 2 s . co m CSSResolver cssResolver = new StyleAttrCSSResolver(); CssFile cssFile = XMLWorkerHelper.getCSS(getClass().getResourceAsStream("saiku.table.pdf.css")); cssResolver.addCss(cssFile); // HTML XMLWorkerFontProvider fontProvider = new XMLWorkerFontProvider(); fontProvider.defaultEncoding = "UTF-8"; CssAppliers cssAppliers = new CssAppliersImpl(fontProvider); HtmlPipelineContext htmlContext = new HtmlPipelineContext(cssAppliers); htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory()); // Pipelines PdfWriterPipeline pdf = new PdfWriterPipeline(doc, writer); HtmlPipeline html = new HtmlPipeline(htmlContext, pdf); CssResolverPipeline css = new CssResolverPipeline(cssResolver, html); XMLWorker worker = new XMLWorker(css, true); XMLParser p = new XMLParser(worker); p.parse(contentIs, true); Long parse = (new Date()).getTime(); LOG.debug("PDF Output - JSConverter: " + (rhino - start) + "ms PDF Render: " + (parse - rhino) + "ms"); }
From source file:sandbox.xmlworker.reporting.FillTemplateHelper.java
public static ElementList parseHtml(String content, String style, TagProcessorFactory tagProcessors) throws IOException { // CSS//from w w w . ja va 2 s . c om CSSResolver cssResolver = new StyleAttrCSSResolver(); CssFile cssFile = XMLWorkerHelper.getCSS(new FileInputStream(style)); cssResolver.addCss(cssFile); // HTML HtmlPipelineContext htmlContext = new HtmlPipelineContext(null); htmlContext.setTagFactory(tagProcessors); htmlContext.autoBookmark(false); // Pipelines ElementList elements = new ElementList(); ElementHandlerPipeline end = new ElementHandlerPipeline(elements, null); HtmlPipeline html = new HtmlPipeline(htmlContext, end); CssResolverPipeline css = new CssResolverPipeline(cssResolver, html); // XML Worker XMLWorker worker = new XMLWorker(css, true); XMLParser p = new XMLParser(worker); p.parse(new FileInputStream(content), Charset.forName("cp1252")); return elements; }