我用java创建了一个带有蜡染的SVG图像,我设法用嵌入的vaadin显示它。
// Get a DOMImplementation
DOMImplementation domImpl =
GenericDOMImplementation.getDOMImplementation();
String svgNamespaceURI = "http://www.w3.org/2000/svg";
// Create an instance of org.w3c.dom.Document
Document document =
domImpl.createDocument(svgNamespaceURI, "svg", null);
svgGen = new SVGGraphics2D(document);
svgGen.setPaint(Color.green);
svgGen.drawPolyline(new int[]{70, 70, 30}, new int[]{50, 30, 70}, 3);
在vaadin中显示SVG
Writer writer = new OutputStreamWriter(out);
svgGen.stream(writer, useCSS);
StreamSource source = new StreamSource() {
private static final long serialVersionUID = -4905654404647215809L;
public InputStream getStream() {
return new ByteArrayInputStream(out.toByteArray());
}
};
// create a StreamResource
String filename = "svg" + System.currentTimeMillis() + ".svg";
StreamResource stream = new StreamResource(source, filename);
embedded= new Embedded();
embedded.setSizeFull();
embedded.setMimeType("image/svg+xml");
embedded.setSource(stream);
mainLayout.addComponent(embedded);
我现在想要缩放和滚动图像,并期望Embedded提供此功能。 经过一段时间的搜索,到目前为止我还没有找到合适的解决方案。
问题是,如何启用滚动和缩放SVG-Image?