Search in sources :

Example 1 with ITextRenderer

use of org.xhtmlrenderer.pdf.ITextRenderer in project api-manager by cehome-com.

the class PdfDocumentGenerator method generate.

public void generate(String htmlContent, String outputFile) throws Exception {
    OutputStream out = null;
    ITextRenderer iTextRenderer = null;
    try {
        DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        Document doc = builder.parse(new ByteArrayInputStream(htmlContent.getBytes("UTF-8")));
        File f = new File(outputFile);
        if (f != null && !f.getParentFile().exists()) {
            f.getParentFile().mkdir();
        }
        out = new FileOutputStream(outputFile);
        iTextRenderer = (ITextRenderer) ITextRendererObjectFactory.getObjectPool().borrowObject();
        try {
            iTextRenderer.setDocument(doc, null);
            iTextRenderer.layout();
            iTextRenderer.createPDF(out);
        } catch (Exception e) {
            ITextRendererObjectFactory.getObjectPool().invalidateObject(iTextRenderer);
            iTextRenderer = null;
            throw e;
        }
    } catch (Exception e) {
        throw e;
    } finally {
        if (out != null)
            out.close();
        if (iTextRenderer != null) {
            try {
                ITextRendererObjectFactory.getObjectPool().returnObject(iTextRenderer);
            } catch (Exception ex) {
                logger.error("Cannot return object from pool.", ex);
            }
        }
    }
}
Also used : ITextRenderer(org.xhtmlrenderer.pdf.ITextRenderer) DocumentBuilder(javax.xml.parsers.DocumentBuilder) ByteArrayInputStream(java.io.ByteArrayInputStream) OutputStream(java.io.OutputStream) FileOutputStream(java.io.FileOutputStream) FileOutputStream(java.io.FileOutputStream) Document(org.w3c.dom.Document) File(java.io.File) DocumentGeneratingException(com.cehome.apimanager.pdf.exception.DocumentGeneratingException)

Example 2 with ITextRenderer

use of org.xhtmlrenderer.pdf.ITextRenderer in project api-manager by cehome-com.

the class ITextRendererObjectFactory method createTextRenderer.

public static synchronized ITextRenderer createTextRenderer() throws DocumentException, IOException {
    ITextRenderer renderer = new ITextRenderer();
    ITextFontResolver fontResolver = renderer.getFontResolver();
    addFonts(fontResolver);
    return renderer;
}
Also used : ITextRenderer(org.xhtmlrenderer.pdf.ITextRenderer) ITextFontResolver(org.xhtmlrenderer.pdf.ITextFontResolver)

Example 3 with ITextRenderer

use of org.xhtmlrenderer.pdf.ITextRenderer in project perun by CESNET.

the class PdfSerializer method write.

@Override
public void write(Object object) throws IOException {
    if (object instanceof String) {
        String htmlText = (String) object;
        ITextRenderer renderer = new ITextRenderer();
        if (BeansUtils.getCoreConfig() != null && BeansUtils.getCoreConfig().getPdfFontPath() != null) {
            try {
                renderer.getFontResolver().addFont(new File(BeansUtils.getCoreConfig().getPdfFontPath()).getAbsolutePath(), "CP1250", true);
            } catch (Exception e) {
                log.error("Failed to add font for PDF: {}", e);
            }
        }
        renderer.setDocumentFromString(htmlText);
        renderer.layout();
        try {
            renderer.createPDF(outputStream);
        } catch (DocumentException e) {
            throw new IOException(e);
        }
    }
}
Also used : ITextRenderer(org.xhtmlrenderer.pdf.ITextRenderer) DocumentException(com.lowagie.text.DocumentException) IOException(java.io.IOException) File(java.io.File) RpcException(cz.metacentrum.perun.core.api.exceptions.RpcException) IOException(java.io.IOException) DocumentException(com.lowagie.text.DocumentException) PerunException(cz.metacentrum.perun.core.api.exceptions.PerunException) PerunRuntimeException(cz.metacentrum.perun.core.api.exceptions.rt.PerunRuntimeException)

Aggregations

ITextRenderer (org.xhtmlrenderer.pdf.ITextRenderer)3 File (java.io.File)2 DocumentGeneratingException (com.cehome.apimanager.pdf.exception.DocumentGeneratingException)1 DocumentException (com.lowagie.text.DocumentException)1 PerunException (cz.metacentrum.perun.core.api.exceptions.PerunException)1 RpcException (cz.metacentrum.perun.core.api.exceptions.RpcException)1 PerunRuntimeException (cz.metacentrum.perun.core.api.exceptions.rt.PerunRuntimeException)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 FileOutputStream (java.io.FileOutputStream)1 IOException (java.io.IOException)1 OutputStream (java.io.OutputStream)1 DocumentBuilder (javax.xml.parsers.DocumentBuilder)1 Document (org.w3c.dom.Document)1 ITextFontResolver (org.xhtmlrenderer.pdf.ITextFontResolver)1