Example usage for com.itextpdf.tool.xml XMLWorkerFontProvider XMLWorkerFontProvider

List of usage examples for com.itextpdf.tool.xml XMLWorkerFontProvider XMLWorkerFontProvider

Introduction

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

Prototype

public XMLWorkerFontProvider() 

Source Link

Usage

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 w  ww. j  a va 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/*  w ww .j a  va  2s.  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  w  w .ja va2s .  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) {
        }
    }

    // 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;

}