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);
}
}
}
}
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;
}
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);
}
}
}
Aggregations