public SwingUniversalImageSvg( SvgImage svg ) { // get GraphicsNode and size from svg document UserAgentAdapter userAgentAdapter = new UserAgentAdapter(); DocumentLoader documentLoader = new DocumentLoader( userAgentAdapter ); BridgeContext ctx = new BridgeContext( userAgentAdapter, documentLoader ); GVTBuilder builder = new GVTBuilder(); svgGraphicsNode = builder.build( ctx, svg.getDocument() ); svgGraphicsSize = ctx.getDocumentSize(); }
public SwtUniversalImageSvg( SvgImage svg ) { // get GraphicsNode and size from svg document UserAgentAdapter userAgentAdapter = new UserAgentAdapter(); DocumentLoader documentLoader = new DocumentLoader( userAgentAdapter ); BridgeContext ctx = new BridgeContext( userAgentAdapter, documentLoader ); GVTBuilder builder = new GVTBuilder(); svgGraphicsNode = builder.build( ctx, svg.getDocument() ); svgGraphicsSize = ctx.getDocumentSize(); }
/** * Retrieves a Batik {@link GraphicsNode} for a given SVG. * * @param svgLocation an URL that specifies the SVG. * @return the corresponding GraphicsNode. * @throws IOException * @throws URISyntaxException */ GraphicsNode getGraphicNode(Document doc) { // instantiates objects needed for building the node UserAgent userAgent = new UserAgentAdapter(); DocumentLoader loader = new DocumentLoader(userAgent); BridgeContext ctx = new BridgeContext(userAgent, loader); ctx.setDynamic(true); // creates node builder and builds node GVTBuilder builder = new GVTBuilder(); return builder.build(ctx, doc); }
/** * Give subclasses a chance to build their own UserAgent */ protected UserAgent buildUserAgent(){ return new UserAgentAdapter(); }
SAXSVGDocumentFactory factory = new SAXSVGDocumentFactory( XMLResourceDescriptor.getXMLParserClassName()); File file = new File("C:/resources/chessboard.svg"); InputStream is = new FileInputStream(file); Document document = factory.createDocument( file.toURI().toURL().toString(), is); UserAgent agent = new UserAgentAdapter(); DocumentLoader loader= new DocumentLoader(agent); BridgeContext context = new BridgeContext(agent, loader); context.setDynamic(true); GVTBuilder builder= new GVTBuilder(); GraphicsNode root= builder.build(context, document); System.out.println(root.getPrimitiveBounds().getWidth()); System.out.println(root.getPrimitiveBounds().getHeight());
Document doc = factory.createSVGDocument(f.toURI().toString()); UserAgent userAgent = new UserAgentAdapter(); DocumentLoader loader = new DocumentLoader(userAgent); BridgeContext ctx = new BridgeContext(userAgent, loader); ctx.setDynamicState(BridgeContext.DYNAMIC); GVTBuilder builder = new GVTBuilder(); builder.build(ctx, doc);
static BridgeContext ctx = new BridgeContext(new UserAgentAdapter()); static GVTBuilder builder = new GVTBuilder(); private static void calculateSize(SVGDocument doc) { GraphicsNode gvtRoot = builder.build(ctx, doc); Rectangle2D rect = gvtRoot.getSensitiveBounds(); doc.getRootElement().setAttributeNS(null, SVGConstants.SVG_WIDTH_ATTRIBUTE, rect.getMaxX() + ""); doc.getRootElement().setAttributeNS(null, SVGConstants.SVG_HEIGHT_ATTRIBUTE, rect.getMaxY() + ""); }
SAXSVGDocumentFactory factory = new SAXSVGDocumentFactory(XMLResourceDescriptor.getXMLParserClassName()); UserAgent userAgent = new UserAgentAdapter(); DocumentLoader loader = new DocumentLoader(userAgent); BridgeContext ctx = new BridgeContext(userAgent, loader); ctx.setDynamicState(BridgeContext.DYNAMIC); GVTBuilder builder = new GVTBuilder(); SVGDocument svgDoc = factory.createSVGDocument(rootPath, new StringReader(svg)); PdfTemplate svgTempl = PdfTemplate.createTemplate(writer, Float.parseFloat(svgDoc.getDocumentElement().getAttribute("width")), Float.parseFloat(svgDoc.getDocumentElement().getAttribute("height"))); Graphics2D g2d = new PdfGraphics2D(svgTempl, svgTempl.getWidth(), svgTempl.getHeight()); GraphicsNode chartGfx = builder.build(ctx, svgDoc); chartGfx.paint(g2d); g2d.dispose(); Image svgImg = new ImgTemplate(svgTempl); svgImg.setAlignment(Image.ALIGN_CENTER); //svgImg.setBorder(Image.BOX); //svgImg.setBorderColor(new BaseColor(0xff, 0x00, 0x00)); //svgImg.setBorderWidth(1); document.add(svgImg);
/** * Reads an SVG Image file into an com.itextpdf.text.Image instance to embed it into a PDF * @param svgPath SVG filepath * @param writer PdfWriter instance * @return Instance of com.itextpdf.text.Image holding the SVG file * @throws IOException * @throws BadElementException */ private static Image getSVGImage(String svgPath, PdfWriter writer) throws IOException, BadElementException { SVGDocument svgDoc = new SAXSVGDocumentFactory(null).createSVGDocument(null, new FileReader(svgPath)); // Try to read embedded height and width float svgWidth = Float.parseFloat(svgDoc.getDocumentElement().getAttribute("width").replaceAll("[^0-9.,]","")); float svgHeight = Float.parseFloat(svgDoc.getDocumentElement().getAttribute("height").replaceAll("[^0-9.,]","")); PdfTemplate svgTempl = PdfTemplate.createTemplate(writer, svgWidth, svgHeight); Graphics2D g2d = new PdfGraphics2D(svgTempl, svgTempl.getWidth(), svgTempl.getHeight()); GraphicsNode chartGfx = (new GVTBuilder()).build(new BridgeContext(new UserAgentAdapter()), svgDoc); chartGfx.paint(g2d); g2d.dispose(); return new ImgTemplate(svgTempl); }
/** * Parses a SVG document read by the given input stream and attaches a GVT tree. An attached GVT tree is required for * performing CSS, text size and and bounding box operations on the SVG document. * <p/> * The resulting bridge context holds a reference to the SVG document {@link BridgeContext#getDocument()} * <p/> * <h1>Important:</h1> Callers are required to invoke {@link BridgeContext#dispose()} on the returned bridge context * as soon as the bridge or the document it references is not required anymore. * <p/> * If the documents needs not be manipulated, use {@link #readSVGDocument(InputStream)} instead. * * @param in * input stream the SVG document is read from. * @return Returns a bridge context that holds references to the SVG document as well as to the GVT tree wrapping * objects. */ public static BridgeContext readSVGDocumentForGraphicalModification(InputStream in) { SVGDocument doc = readSVGDocument(in); //add a gvt tree for text and alignment calculations BridgeContext bc = new BridgeContext(new UserAgentAdapter()); bc.setDynamic(true); GVTBuilder builder = new DynamicGVTBuilder(); builder.build(bc, doc); return bc; }
@Override public Dimension getDimension(Document document) { UserAgent agent = new UserAgentAdapter(); DocumentLoader loader = new DocumentLoader(agent); BridgeContext context = new BridgeContext(agent, loader); context.setDynamic(true); GVTBuilder builder = new GVTBuilder(); Rectangle2D primitiveBounds = builder.build(context, document).getPrimitiveBounds(); return new Dimension((float)primitiveBounds.getWidth(), (float)primitiveBounds.getHeight()); } }
factory = new SAXSVGDocumentFactory( XMLResourceDescriptor.getXMLParserClassName()); UserAgent userAgent = new UserAgentAdapter(); DocumentLoader loader = new DocumentLoader(userAgent); bridgeContext = new BridgeContext(userAgent, loader);
SVGDocument doc = fac.createSVGDocument( url, in ); GVTBuilder builder = new GVTBuilder(); UserAgent userAgent = new UserAgentAdapter(); DocumentLoader loader = new DocumentLoader( userAgent ); BridgeContext ctx = new BridgeContext( userAgent, loader );
/** * Enhance the SVG DOM for the given document to provide CSS- and * SVG-specific DOM interfaces. * * @param document * The document to enhance. * @link http://wiki.apache.org/xmlgraphics-batik/BootSvgAndCssDom */ private void initSVGDOM(Document document) { UserAgent userAgent = new UserAgentAdapter(); DocumentLoader loader = new DocumentLoader(userAgent); BridgeContext bridgeContext = new BridgeContext(userAgent, loader); bridgeContext.setDynamicState(BridgeContext.DYNAMIC); // Enable CSS- and SVG-specific enhancements. (new GVTBuilder()).build(bridgeContext, document); }
/** * Retrieves a Batik {@link GraphicsNode} for a given SVG. * * @param svgLocation * an URL that specifies the SVG. * @return the corresponding GraphicsNode. * @throws IOException * @throws URISyntaxException */ private GraphicsNode getGraphicNode(Document doc) { // instantiates objects needed for building the node UserAgent userAgent = new UserAgentAdapter(); DocumentLoader loader = new DocumentLoader(userAgent); BridgeContext ctx = new BridgeContext(userAgent, loader); ctx.setDynamic(true); // creates node builder and builds node GVTBuilder builder = new GVTBuilder(); return builder.build(ctx, doc); }
UserAgent userAgent = new UserAgentAdapter(); DocumentLoader loader = new DocumentLoader(userAgent); BridgeContext ctx = new BridgeContext(userAgent, loader);
public Main(File []files, Dimension size) { setBackground(Color.black); this.files = files; UserAgentAdapter ua = new UserAgentAdapter(); renderer = new StaticRenderer(); userAgent = ua;
public Main(File []files, Dimension size) { setBackground(Color.black); this.files = files; UserAgentAdapter ua = new UserAgentAdapter(); renderer = new StaticRenderer(); userAgent = ua;
public Main(File []files, Dimension size) { setBackground(Color.black); this.files = files; UserAgentAdapter ua = new UserAgentAdapter(); renderer = new StaticRenderer(); userAgent = ua;
UserAgent userAgent = new UserAgentAdapter(); DocumentLoader loader = new DocumentLoader(userAgent); BridgeContext ctx = new BridgeContext(userAgent, loader);