Example usage for com.itextpdf.tool.xml XMLWorkerHelper getCSS

List of usage examples for com.itextpdf.tool.xml XMLWorkerHelper getCSS

Introduction

In this page you can find the example usage for com.itextpdf.tool.xml XMLWorkerHelper getCSS.

Prototype

public static synchronized CssFile getCSS(InputStream in) 

Source Link

Usage

From source file:book.pdftemplates.FillTemplateHelper.java

public static ElementList parseHtml(String content, String style, TagProcessorFactory tagProcessors)
        throws IOException {
    // CSS//  ww w.  ja v  a2s . 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));
    return elements;
}

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 {//ww  w.j a  v  a 2  s. com
        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:com.apcb.utils.utils.PdfCreator.java

public static String createPdfWStyles(String fileName, String innerHTML, Document document, String CSS,
        String imagesSourcesPath) throws IOException, DocumentException {

    log.info("Creando HTML nombre: " + fileName);
    File fileHTML = new File(fileName);
    fileHTML.getParentFile().mkdirs();//from   w  ww . ja  va 2  s .co  m
    PrintWriter writerHTML = new PrintWriter(fileHTML, "UTF-8");
    writerHTML.println(innerHTML);
    writerHTML.flush();
    writerHTML.close();
    log.info("Creado HTML ruta: " + fileHTML.getAbsolutePath());

    log.info("Creando PDF nombre: " + fileName + ".pdf");
    File filePDF = new File(fileName + ".pdf");

    //File file = new File(fileName);
    filePDF.getParentFile().mkdirs();

    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(fileName + ".pdf"));
    document.open();

    CSSResolver cssResolver = new StyleAttrCSSResolver();
    CssFile cssFile = XMLWorkerHelper.getCSS(new ByteArrayInputStream(CSS.getBytes()));
    cssResolver.addCss(cssFile);

    // HTML
    HtmlPipelineContext htmlContext = new HtmlPipelineContext(null);
    htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory());

    htmlContext.setImageProvider(new AbstractImageProvider() {
        @Override
        public String getImageRootPath() {
            return imagesSourcesPath;
        }
    });

    // Pipelines
    PdfWriterPipeline pdf = new PdfWriterPipeline(document, writer);
    HtmlPipeline html = new HtmlPipeline(htmlContext, pdf);
    CssResolverPipeline css = new CssResolverPipeline(cssResolver, html);

    // XML Worker
    XMLWorker worker = new XMLWorker(css, true);
    XMLParser p = new XMLParser(worker);
    p.parse(new ByteArrayInputStream(innerHTML.getBytes()));

    document.close();
    log.info("Creado PDF ruta: " + filePDF.getAbsolutePath());
    log.info("filePDF.getName() " + filePDF.getName());
    return filePDF.getName();
}

From source file:com.semfapp.adamdilger.semf.Pdf.java

License:Open Source License

private void createPDFNew(String filePath, String htmlString, @Nullable ArrayList<ImageFile> images) {

    File file = null;/*from  w w w  . j a  v  a 2 s  .  c o  m*/
    try {
        file = new File(filePath);

        // step 1
        Document document = new Document();

        // step 2
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
        writer.setInitialLeading(12.5f);

        // step 3
        document.open();

        // step 4

        // CSS
        CSSResolver cssResolver = new StyleAttrCSSResolver();
        CssFile cssFile = XMLWorkerHelper.getCSS(activity.getAssets().open("styles.css"));
        cssResolver.addCss(cssFile);

        // HTML
        HtmlPipelineContext htmlContext = new HtmlPipelineContext(null);
        htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory());

        // Pipelines

        PdfWriterPipeline pdf = new PdfWriterPipeline(document, writer);
        HtmlPipeline html = new HtmlPipeline(htmlContext, pdf);
        CssResolverPipeline css = new CssResolverPipeline(cssResolver, html);

        // XML Worker
        XMLWorker worker = new XMLWorker(css, true);
        XMLParser p = new XMLParser(worker);

        Drawable d = activity.getResources().getDrawable(R.drawable.logo_icon);
        Bitmap bitmap = ((BitmapDrawable) d).getBitmap();
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
        byte[] bitmapData = stream.toByteArray();

        Image image = Image.getInstance(bitmapData);
        image.setAbsolutePosition(35, 763);
        image.scalePercent(12);
        document.add(image);

        p.parse(new ByteArrayInputStream(htmlString.getBytes(StandardCharsets.UTF_8)));

        if (images != null) {
            System.out.println("Adding IMage");

            for (int x = 0; x < images.size(); x++) {
                Image cursor = images.get(x).getImage();

                float ratio = cursor.getPlainHeight() / cursor.getPlainWidth();

                float imgWidth = document.getPageSize().getWidth() - 100;
                float imgHeight = document.getPageSize().getHeight() - 100;

                cursor.scaleToFit(new Rectangle(imgWidth, imgHeight));

                document.add(cursor);
            }
        }

        // step 5
        document.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:org.freelancertech.poc.itext.ParseHtmlTable1.java

public static byte[] createPdf() throws DocumentException, IOException {

    try (ByteArrayOutputStream os = new ByteArrayOutputStream();) {
        Document document = new Document();
        PdfWriter writer = PdfWriter.getInstance(document, os);

        document.open();//  ww  w  .  j  a  v a  2  s .co m
        ClassLoader classLoader = ParseHtmlTable1.class.getClassLoader();

        CSSResolver cssResolver = new StyleAttrCSSResolver();
        CssFile cssFile = XMLWorkerHelper.getCSS(classLoader.getResourceAsStream(STYLE_FILE_NAME));
        cssResolver.addCss(cssFile);

        HtmlPipelineContext htmlContext = new HtmlPipelineContext(null);
        htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory());
        PdfWriterPipeline pdf = new PdfWriterPipeline(document, writer);

        HtmlPipeline html = new HtmlPipeline(htmlContext, pdf);
        CssResolverPipeline css = new CssResolverPipeline(cssResolver, html);

        XMLWorker worker = new XMLWorker(css, true);
        XMLParser p = new XMLParser(worker);
        InputStream is = classLoader.getResourceAsStream(HTML_FILE_NAME);
        p.parse(is);
        document.close();
        return os.toByteArray();
    }
}

From source file:org.freelancertech.poc.itext.ParseHtmlTable1.java

public static byte[] createPdf(String content) throws DocumentException, IOException {

    try (ByteArrayOutputStream os = new ByteArrayOutputStream();) {
        Document document = new Document();
        PdfWriter writer = PdfWriter.getInstance(document, os);

        document.open();/*from  w w w  .j  av a2 s.c  o  m*/
        ClassLoader classLoader = ParseHtmlTable1.class.getClassLoader();

        CSSResolver cssResolver = new StyleAttrCSSResolver();
        CssFile cssFile = XMLWorkerHelper.getCSS(classLoader.getResourceAsStream(STYLE_FILE_NAME));
        cssResolver.addCss(cssFile);

        HtmlPipelineContext htmlContext = new HtmlPipelineContext(null);
        htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory());
        PdfWriterPipeline pdf = new PdfWriterPipeline(document, writer);

        HtmlPipeline html = new HtmlPipeline(htmlContext, pdf);
        CssResolverPipeline css = new CssResolverPipeline(cssResolver, html);

        XMLWorker worker = new XMLWorker(css, true);
        XMLParser p = new XMLParser(worker);
        InputStream is = new ByteArrayInputStream(content.getBytes());
        p.parse(is);
        document.close();
        return os.toByteArray();
    }
}

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();/*from   ww w  . ja 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>&nbsp;</p>" + content;

    InputStream contentIs = new ByteArrayInputStream(content.getBytes("UTF-8"));
    Long rhino = (new Date()).getTime();
    // CSS/*from w  w  w  .j  a  v a2  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:org.smap.sdal.managers.PDFSurveyManager.java

License:Open Source License

private Parser getXMLParser() {

    Parser parser = new Parser();

    // CSS/*from  w  ww. j av a2 s.  c  o  m*/
    CSSResolver cssResolver = new StyleAttrCSSResolver();
    FileInputStream fis = null;
    try {
        fis = new FileInputStream(DEFAULT_CSS);
        CssFile cssFile = XMLWorkerHelper.getCSS(fis);
        cssResolver.addCss(cssFile);
    } catch (Exception e) {
        log.log(Level.SEVERE, "Failed to get CSS file", e);
        cssResolver = XMLWorkerHelper.getInstance().getDefaultCssResolver(true);
    } finally {
        try {
            fis.close();
        } catch (Exception e) {
        }
    }

    // Pipelines
    parser.elements = new ElementList();
    ElementHandlerPipeline end = new ElementHandlerPipeline(parser.elements, null);

    String os = System.getProperty("os.name");
    log.info("Operating System:" + os);

    XMLWorkerFontProvider fontProvider = new XMLWorkerFontProvider();

    if (os.startsWith("Mac")) {
        fontProvider.register("/Library/Fonts/NotoSansBengali-Regular.ttf", BaseFont.IDENTITY_H);
        fontProvider.register("/Library/Fonts/NotoNaskhArabic-Regular.ttf", BaseFont.IDENTITY_H);
        fontProvider.register("/Library/Fonts/NotoSansBengali-Bold.ttf", BaseFont.IDENTITY_H);
        fontProvider.register("/Library/Fonts/NotoSans-Regular.ttf", BaseFont.IDENTITY_H);
        fontProvider.register("/Library/Fonts/NotoSans-Bold.ttf", BaseFont.IDENTITY_H);

    } else if (os.indexOf("nix") >= 0 || os.indexOf("nux") >= 0 || os.indexOf("aix") > 0) {
        // Linux / Unix
        fontProvider.register("/usr/share/fonts/truetype/NotoSansBengali-Regular.ttf", BaseFont.IDENTITY_H);
        fontProvider.register("/usr/share/fonts/truetype/NotoNaskhArabic-Regular.ttf", BaseFont.IDENTITY_H);
        fontProvider.register("/usr/share/fonts/truetype/NotoNaskhArabic-Regular.ttf", BaseFont.IDENTITY_H);
        fontProvider.register("/usr/share/fonts/truetype/NotoSans-Regular.ttf", BaseFont.IDENTITY_H);
        fontProvider.register("/usr/share/fonts/truetype/NotoSans-Bold.ttf", BaseFont.IDENTITY_H);
    }

    /*
     System.out.println("Fonts present in " + fontProvider.getClass().getName());
         Set<String> registeredFonts = fontProvider.getRegisteredFonts();
         for (String font : registeredFonts)
       System.out.println(font);
     */
    CssAppliers cssAppliers = new CssAppliersImpl(fontProvider);

    // HTML
    HtmlPipelineContext htmlContext = new HtmlPipelineContext(cssAppliers);
    htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory());
    htmlContext.autoBookmark(false);
    HtmlPipeline html = new HtmlPipeline(htmlContext, end);
    CssResolverPipeline css = new CssResolverPipeline(cssResolver, html);

    XMLWorker worker = new XMLWorker(css, true);
    parser.xmlParser = new XMLParser(worker);

    return parser;

}

From source file:org.smap.sdal.managers.PDFTableManager.java

License:Open Source License

private Parser getXMLParser() {

    Parser parser = new Parser();

    // CSS/*from  www. j a  v  a 2  s.  c om*/
    CSSResolver cssResolver = new StyleAttrCSSResolver();
    FileInputStream fis = null;
    try {
        fis = new FileInputStream(DEFAULT_CSS);
        CssFile cssFile = XMLWorkerHelper.getCSS(fis);
        cssResolver.addCss(cssFile);
    } catch (Exception e) {
        log.log(Level.SEVERE, "Failed to get CSS file", e);
        cssResolver = XMLWorkerHelper.getInstance().getDefaultCssResolver(true);
    } finally {
        try {
            fis.close();
        } catch (Exception e) {
        }
    }

    // HTML
    HtmlPipelineContext htmlContext = new HtmlPipelineContext(null);
    htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory());
    htmlContext.autoBookmark(false);

    // Pipelines
    parser.elements = new ElementList();
    ElementHandlerPipeline end = new ElementHandlerPipeline(parser.elements, null);
    HtmlPipeline html = new HtmlPipeline(htmlContext, end);
    CssResolverPipeline css = new CssResolverPipeline(cssResolver, html);

    // XML Worker
    XMLWorker worker = new XMLWorker(css, true);
    parser.xmlParser = new XMLParser(worker);

    return parser;

}