@Override protected void renderPdfDocument(String htmlContent, OutputStream outputStream) { ITextRenderer renderer = new ITextRenderer(); try { htmlContent = Pattern.compile("(?i)<!doctype").matcher(htmlContent).replaceAll("<!DOCTYPE"); File tmpFile = File.createTempFile("htmlReport", ".htm"); DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream(tmpFile)); dataOutputStream.write(htmlContent.getBytes(StandardCharsets.UTF_8)); dataOutputStream.close(); loadFonts(renderer); String url = tmpFile.toURI().toURL().toString(); renderer.setDocument(url); ResourcesITextUserAgentCallback userAgentCallback = new ResourcesITextUserAgentCallback(renderer.getOutputDevice()); userAgentCallback.setSharedContext(renderer.getSharedContext()); renderer.getSharedContext().setUserAgentCallback(userAgentCallback); renderer.layout(); renderer.createPDF(outputStream); FileUtils.deleteQuietly(tmpFile); } catch (Exception e) { throw wrapWithReportingException("", e); } }
r.getSharedContext().setUserAgentCallback(userAgent);
JRSTUserAgent jrstUserAgent = new JRSTUserAgent(absolutePath); jrstUserAgent.setBaseURL(absolutePath); renderer.getSharedContext().setUserAgentCallback(jrstUserAgent); jrstUserAgent.setSharedContext(renderer.getSharedContext());
/** * Converts XHTML data to a PDF document.<p> * * @param cms the current CMS context * @param xhtmlData the XHTML as a byte array * @param uri the uri to use for error messages in the XML parser * * @return the PDF data as a byte array * * @throws Exception if something goes wrong */ public byte[] convertXhtmlToPdf(CmsObject cms, byte[] xhtmlData, String uri) throws Exception { Document doc = readDocument(xhtmlData); ITextRenderer renderer = new ITextRenderer(); CmsPdfUserAgent userAgent = new CmsPdfUserAgent(cms); userAgent.setSharedContext(renderer.getSharedContext()); renderer.getSharedContext().setUserAgentCallback(userAgent); renderer.setDocument(doc, uri); renderer.layout(); ByteArrayOutputStream out = new ByteArrayOutputStream(); renderer.createPDF(out); return out.toByteArray(); }
private static ITextRenderer createRenderer(SandboxTaskContext context, String baseUrl, String username, String fontPath) { ITextRenderer renderer = new ITextRenderer(); ITextUserAgent userAgent = new SandboxCallbackUserAgent(renderer.getOutputDevice(), baseUrl, username, context); renderer.getSharedContext().setUserAgentCallback(userAgent); userAgent.setBaseURL(baseUrl); userAgent.setSharedContext(renderer.getSharedContext()); if (StringUtils.isNotBlank(fontPath)) { configureFonts(renderer.getFontResolver(), fontPath); } return renderer; }
public void toStream(String string, OutputStream os, String documentBaseURL, List<String> fonts) { try { InputStream input = new ByteArrayInputStream(string.getBytes("UTF-8")); ITextRenderer renderer = new ITextRenderer(); if (fonts != null) for (String font : fonts) { renderer.getFontResolver().addFont(font, BaseFont.IDENTITY_H, BaseFont.EMBEDDED); } PdfUserAgent myUserAgent = new PdfUserAgent(renderer.getOutputDevice(), environment); myUserAgent.setSharedContext(renderer.getSharedContext()); renderer.getSharedContext().setUserAgentCallback(myUserAgent); Document document = new HtmlDocumentBuilder().parse(input); renderer.setDocument(document, documentBaseURL); renderer.layout(); renderer.createPDF(os); } catch (Exception e) { LOG.error("Error creating document from template", e); } } }
useCustomFontIfConfigured(renderer.getFontResolver()); ConfluenceExportUserAgent callback = newConfluenceExportUserAgent(renderer); renderer.getSharedContext().setUserAgentCallback(callback); callback.setSharedContext(renderer.getSharedContext());
public ITextRenderer(float dotsPerPoint, int dotsPerPixel, ITextOutputDevice outputDevice, ITextUserAgent userAgent) { _dotsPerPoint = dotsPerPoint; _outputDevice = outputDevice; _sharedContext = new SharedContext(); _sharedContext.setUserAgentCallback(userAgent); _sharedContext.setCss(new StyleReference(userAgent)); userAgent.setSharedContext(_sharedContext); _outputDevice.setSharedContext(_sharedContext); ITextFontResolver fontResolver = new ITextFontResolver(_sharedContext); _sharedContext.setFontResolver(fontResolver); ITextReplacedElementFactory replacedElementFactory = new ITextReplacedElementFactory(_outputDevice); _sharedContext.setReplacedElementFactory(replacedElementFactory); _sharedContext.setTextRenderer(new ITextTextRenderer()); _sharedContext.setDPI(72 * _dotsPerPoint); _sharedContext.setDotsPerPixel(dotsPerPixel); _sharedContext.setPrint(true); _sharedContext.setInteractive(false); _timeouted= false; }
public ITextRenderer(float dotsPerPoint, int dotsPerPixel, ITextOutputDevice outputDevice, ITextUserAgent userAgent) { _dotsPerPoint = dotsPerPoint; _outputDevice = outputDevice; _sharedContext = new SharedContext(); _sharedContext.setUserAgentCallback(userAgent); _sharedContext.setCss(new StyleReference(userAgent)); userAgent.setSharedContext(_sharedContext); _outputDevice.setSharedContext(_sharedContext); ITextFontResolver fontResolver = new ITextFontResolver(_sharedContext); _sharedContext.setFontResolver(fontResolver); ITextReplacedElementFactory replacedElementFactory = new ITextReplacedElementFactory(_outputDevice); _sharedContext.setReplacedElementFactory(replacedElementFactory); _sharedContext.setTextRenderer(new ITextTextRenderer()); _sharedContext.setDPI(72 * _dotsPerPoint); _sharedContext.setDotsPerPixel(dotsPerPixel); _sharedContext.setPrint(true); _sharedContext.setInteractive(false); _timeouted= false; }
public ITextRenderer(float dotsPerPoint, int dotsPerPixel) { _dotsPerPoint = dotsPerPoint; _outputDevice = new ITextOutputDevice(_dotsPerPoint); ITextUserAgent userAgent = new ITextUserAgent(_outputDevice); _sharedContext = new SharedContext(); _sharedContext.setUserAgentCallback(userAgent); _sharedContext.setCss(new StyleReference(userAgent)); userAgent.setSharedContext(_sharedContext); _outputDevice.setSharedContext(_sharedContext); ITextFontResolver fontResolver = new ITextFontResolver(_sharedContext); _sharedContext.setFontResolver(fontResolver); ITextReplacedElementFactory replacedElementFactory = new ITextReplacedElementFactory(_outputDevice); _sharedContext.setReplacedElementFactory(replacedElementFactory); _sharedContext.setTextRenderer(new ITextTextRenderer()); _sharedContext.setDPI(72*_dotsPerPoint); _sharedContext.setDotsPerPixel(dotsPerPixel); _sharedContext.setPrint(true); _sharedContext.setInteractive(false); }
public ITextRenderer(float dotsPerPoint, int dotsPerPixel) { _dotsPerPoint = dotsPerPoint; _outputDevice = new ITextOutputDevice(_dotsPerPoint); ITextUserAgent userAgent = new ITextUserAgent(_outputDevice); _sharedContext = new SharedContext(); _sharedContext.setUserAgentCallback(userAgent); _sharedContext.setCss(new StyleReference(userAgent)); userAgent.setSharedContext(_sharedContext); _outputDevice.setSharedContext(_sharedContext); ITextFontResolver fontResolver = new ITextFontResolver(_sharedContext); _sharedContext.setFontResolver(fontResolver); ITextReplacedElementFactory replacedElementFactory = new ITextReplacedElementFactory(_outputDevice); _sharedContext.setReplacedElementFactory(replacedElementFactory); _sharedContext.setTextRenderer(new ITextTextRenderer()); _sharedContext.setDPI(72 * _dotsPerPoint); _sharedContext.setDotsPerPixel(dotsPerPixel); _sharedContext.setPrint(true); _sharedContext.setInteractive(false); }
g2r.getSharedContext().setDPI(72f); g2r.getSharedContext().getTextRenderer().setSmoothingThreshold(0); g2r.getSharedContext().setUserAgentCallback(panel.getSharedContext().getUserAgentCallback()); g2r.setDocument(panel.getDocument(), panel.getSharedContext().getUac().getBaseURL()); g2r.getSharedContext().setReplacedElementFactory(panel.getSharedContext().getReplacedElementFactory());
g2r.getSharedContext().setDPI(72f); g2r.getSharedContext().getTextRenderer().setSmoothingThreshold(0); g2r.getSharedContext().setUserAgentCallback(panel.getSharedContext().getUserAgentCallback()); g2r.setDocument(panel.getDocument(), panel.getSharedContext().getUac().getBaseURL()); g2r.getSharedContext().setReplacedElementFactory(panel.getSharedContext().getReplacedElementFactory());