List of usage examples for com.itextpdf.tool.xml.pipeline.html HtmlPipelineContext setImageProvider
public HtmlPipelineContext setImageProvider(final ImageProvider imageProvider)
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!"); } }