public int getDotsPerPixel() { return _sharedContext.getDotsPerPixel(); }
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; }
private void setDocument(Document doc, String url, NamespaceHandler nsh) { this.doc = doc; sharedContext.reset(); if (Configuration.isTrue("xr.cache.stylesheets", true)) { sharedContext.getCss().flushStyleSheets(); } else { sharedContext.getCss().flushAllStyleSheets(); } sharedContext.setBaseURL(url); sharedContext.setNamespaceHandler(nsh); sharedContext.getCss().setDocumentContext( sharedContext, sharedContext.getNamespaceHandler(), doc, new NullUserInterface() ); }
private SharedContext newSharedContext(int dotsPerPixel, UserAgentCallback userAgent) { SharedContext context = new SharedContext(userAgent); AWTFontResolver fontResolver = new AWTFontResolver(); context.setFontResolver(fontResolver); SwingReplacedElementFactory replacedElementFactory = new SwingReplacedElementFactory(); context.setReplacedElementFactory(replacedElementFactory); context.setTextRenderer(new Java2DTextRenderer()); context.setDPI(72 * this.dotsPerPoint); context.setDotsPerPixel(dotsPerPixel); context.setPrint(false); context.setInteractive(false); return context; }
/** * Constructor for the Context object */ public SharedContext(UserAgentCallback uac, FontResolver fr, ReplacedElementFactory ref, TextRenderer tr, float dpi) { font_resolver = fr; replacedElementFactory = ref; setMedia("screen"); this.uac = uac; setCss(new StyleReference(uac)); XRLog.render("Using CSS implementation from: " + getCss().getClass().getName()); setTextRenderer(tr); setDPI(dpi); }
g2r.getSharedContext().setPrint(true); g2r.getSharedContext().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.layout(g2, null); g2r.getPanel().assignPagePrintPositions(g2);
private LayoutContext newLayoutContext() { LayoutContext result = _sharedContext.newLayoutContextInstance(); result.setFontContext(new ITextFontContext()); _sharedContext.getTextRenderer().setup(result.getFontContext()); return result; }
@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); chainingReplacedElementFactory.addReplacedElementFactory(r.getSharedContext().getReplacedElementFactory()); chainingReplacedElementFactory.addReplacedElementFactory(new SVGReplacedElementFactory()); r.getSharedContext().setReplacedElementFactory(chainingReplacedElementFactory);
/** * @param gc * @return a new {@link RenderingContext} */ protected RenderingContext newRenderingContext(GC gc) { RenderingContext result = _sharedContext.newRenderingContextInstance(); result.setFontContext(new SWTFontContext(gc)); result.setOutputDevice(new SWTOutputDevice(gc)); _sharedContext.getTextRenderer().setup(result.getFontContext()); return result; }
private void processLink(RenderingContext c, Box box) { Element elem = box.getElement(); if (elem != null) { NamespaceHandler handler = _sharedContext.getNamespaceHandler(); String uri = handler.getLinkUri(elem); if (uri != null) { if (uri.length() > 1 && uri.charAt(0) == '#') { String anchor = uri.substring(1); Box target = _sharedContext.getBoxById(anchor); if (target != null) { PdfDestination dest = createDestination(c, target);
public PrinterRenderer(Printer printer, UserAgentCallback uac) { _printer = printer; _sharedContext = new SharedContext(uac, new SWTFontResolver(printer), new SWTReplacedElementFactory(), new SWTTextRenderer(), printer .getDPI().y); _sharedContext.setPrint(true); _sharedContext.setInteractive(false); }
useCustomFontIfConfigured(renderer.getFontResolver()); ConfluenceExportUserAgent callback = newConfluenceExportUserAgent(renderer); renderer.getSharedContext().setUserAgentCallback(callback); callback.setSharedContext(renderer.getSharedContext()); ImageTranscoderCacheUtil.initializeCache(); renderer.setDocument(xhtml, baseUrl + contextPath + "/"); renderer.getSharedContext().setNamespaceHandler(nsh); UtilTimerStack.push("FlyingSaucerXmlToPdfConverter.renderer.layout"); setPdfCreationListener(progress, renderer);
/** * Sets the new current document, where the new document is located * relative, e.g using a relative URL. * * @param filename * The new document to load */ protected void setDocumentRelative(String filename) { String url = _sharedContext.getUac().resolveURI(filename); if (isAnchorInCurrentDocument(filename)) { String id = getAnchorId(filename); Box box = _sharedContext.getBoxById(id); if (box != null) { Point pt; if (box.getStyle().isInline()) { pt = new Point(0 /* box.getAbsX() */, box.getAbsY()); } else { RectPropertySet margin = box.getMargin(_layout_context); pt = new Point(0 /* box.getAbsX() + (int) margin.left() */, box.getAbsY() + (int) margin.top()); } setOrigin(pt); return; } } Document dom = loadDocument(url); setDocument(dom, url); }
protected LayoutContext newLayoutContext(Graphics2D g) { XRLog.layout(Level.FINEST, "new context begin"); getSharedContext().setCanvas(this); XRLog.layout(Level.FINEST, "new context end"); LayoutContext result = getSharedContext().newLayoutContextInstance(); Graphics2D layoutGraphics = g.getDeviceConfiguration().createCompatibleImage(1, 1).createGraphics(); result.setFontContext(new Java2DFontContext(layoutGraphics)); getSharedContext().getTextRenderer().setup(result.getFontContext()); return result; }
public StyleReference getCss() { return _sharedContext.getCss(); }
public float getXHeight(FontContext fontContext, FontSpecification fs) { FSFont font = getFontResolver().resolveFont(this, fs); FSFontMetrics fm = getTextRenderer().getFSFontMetrics(fontContext, font, " "); float sto = fm.getStrikethroughOffset(); return fm.getAscent() - 2 * Math.abs(sto) + fm.getStrikethroughThickness(); }
public Box getBoxById(String id) { return sharedContext.getBoxById(id); } }
/** * Applies a change in scale for fonts using the rendering context's text * renderer. */ private void scaleFont(float scaleBy) { SharedContext rc = getSharedContext(); float fs = rc.getTextRenderer().getFontScale() * scaleBy; if (fs < minFontScale || fs > maxFontScale) return; rc.getTextRenderer().setFontScale(fs); setDocument(getDocument()); }
protected void init() { getSharedContext().setReplacedElementFactory( new SWTXhtmlReplacedElementFactory(this)); if (Configuration.isTrue("xr.use.listeners", true)) { new HoverListener(this); new CursorListener(this); new LinkListener(this); } }