Example usage for com.itextpdf.tool.xml.pipeline.html HtmlPipelineContext setImageProvider

List of usage examples for com.itextpdf.tool.xml.pipeline.html HtmlPipelineContext setImageProvider

Introduction

In this page you can find the example usage for com.itextpdf.tool.xml.pipeline.html HtmlPipelineContext setImageProvider.

Prototype

public HtmlPipelineContext setImageProvider(final ImageProvider imageProvider) 

Source Link

Document

An ImageProvider can be provided and works in conjunction with Image and ListStyleTypeCssApplier for List Images.

Usage

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  w  w.  j av a2 s  . c o 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:it.digitalhumanities.dhcpublisher.DHCPublisher.java

private void convertFile(final File subDir) throws DocumentException, IOException {

    File[] htmlFiles = subDir.listFiles(new FilenameFilter() {

        @Override// ww  w.j  ava 2 s  . c o  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!");
    }
}