Tag: svg

用于Java的SVG构建库

是否有一个Java库提供了基于组件的方法来创建SVG文档? 我不需要渲染SVG,我想做的就是以编程方式并以类型安全的方式构造SVG树。

使用XSLFO显示SVG

我的第一个问题; 我目前正在修复使用XSLFO将我们的语法转换为FO并最终将其转换为PDF的图形服务。 以前我们一直在使用PDF导出的网页上的PNG图表,但这会产生非常难看的结果,所以我们决定使用SVG替代PDF。 但是,SVG似乎没有正确扩展到SVGcanvas。 以下是运行XSLFO之前的语法: 这是我正在使用的XSLFO: SVG确实出现在PDF中,它确实包含在canvas中 – 但无论出于何种原因,我都无法正确地进行缩放。 它真的非常非常庞大,结果是一个非常裁剪的SVG版本。 我在这里没有任何建议 – 这里有没有人有这方面的经验? PS:使用最新版本的Batik创建图像,并正确设置宽度和高度。

SVG Salamander的例子?

我正在使用Java和SVG Salamander,但是无法完全了解如何将简单的SVG文件呈现到JPanel 。 有人可以给我一个简短的例子吗? 试图遵循官方网站上的松散教程,但找不到简单的代码来更好地理解。

如何在Selenium WebDriver中使用xPath来获取SVG元素?

我正在使用Selenium WebDriver (Java版)测试基于OpenLayers的API。 我想测试一个使用OpenLayers .Control.ModifyFeature的function。 我想点击绘制的特征(SVG),然后拖动并检查它们是否存在,可见或隐藏。 我画了一个多边形,我选择了它。 见下图: 这些SVG元素的HTML在这里: 假设我想选择红点。 我这样做了: String xpath = “//circle[contains(@id, ‘OpenLayers_Geometry_Point’) AND fill = ‘#990000’]”; List vertices = driver.findElements(By.xpath(xpath)); 但它总是返回一个空列表[] 。 我在这做错了什么? 请问有人帮帮我吗? 非常感谢。 编辑1 – function:verticesAreVisible 在单击操作之前,我想获取元素并检查它们是否可见。 我正在使用这个function。 public static boolean verticesAreVisible(WebDriver driver, String xpath) { List list = driver.findElements(By.xpath(xpath)); if (list.isEmpty()) { return false; } boolean visible = […]

Swing&Batik:从SVG文件创建ImageIcon?

简单地说,我正在寻找一种使用batik库从SVG文件制作ImageIcon的方法。 我不想首先将SVG光栅转换为磁盘,我只是希望能够从jar文件中提取svg并将其作为UI元素。 我觉得这应该相当容易,但蜡染javadocs并没有告诉我我需要知道什么。 (为什么选择蜡染?好吧,我们已经在使用它了,所以我们不必经营其他合法的图书馆。)

带有DOM /蜡染的事件clic:恢复引用符号的use标签

晚上好, 我目前正在研究Java中的图形应用程序(处理svg文件),使用batik直接操作DOM文档svg。 我在“符号”标签中声明的各种元素由标签“使用”使用和/显示。 这里的文件svg: 我在svg的一个元素上添加了一个事件: ((EventTarget) objAdd.getNodeUse()).addEventListener( SVGConstants.SVG_MOUSEDOWN_EVENT_TYPE, new EObject(), false); ((EventTarget) objAdd.getNodeDefs()).addEventListener( SVGConstants.SVG_MOUSEDOWN_EVENT_TYPE, new EObject(), false); 在一个区域(与组元素g匹配) Element elt = doc.getElementById(“nameZone1”); EventTarget t = (EventTarget)elt; t.addEventListener(SVGConstants.SVG_MOUSEDOWN_EVENT_TYPE, new EObject(), false); EObject类实现了org.w3c.dom.events.EventListener: import org.w3c.dom.Element; import org.w3c.dom.events.Event; public class EObject implements org.w3c.dom.events.EventListener { public void handleEvent(Event evt) { System.out.println(“YOUPIIII JE SUIS CLIQUE”); Element e = (Element) evt.getCurrentTarget(); […]

如何将SVG图像添加到使用HTML和Flying Saucer库(和Batik)构建的PDF?

我正在使用飞碟库(旧的但开源的)使用XHTML生成PDF。 我有这个工作,但我也想添加SVG图像。 我开始致力于整合蜡染试图让它工作,但我遇到了问题。 未绘制SVG图像。 XHTML仍然呈现,但它似乎没有显示SVG。 我已经让SVG在单独的PDF上渲染,但从未与飞碟结果一起渲染。 我添加了通常的ReplacedElementFactory(它也适用于常规图像,但还没有包含该代码)。 唯一相关的方法(确实被调用和所有内容)如下: @Override public ReplacedElement createReplacedElement(LayoutContext layoutContext, BlockBox blockBox, UserAgentCallback userAgentCallback, int cssWidth, int cssHeight) { Element element = blockBox.getElement(); if (element == null) { return null; } String nodeName = element.getNodeName(); if (“img”.equals(nodeName)) { SAXSVGDocumentFactory factory = new SAXSVGDocumentFactory(XMLResourceDescriptor.getXMLParserClassName()); SVGDocument svgImage = null; try { svgImage = factory.createSVGDocument(new […]

使用Java读取svg路径数据的最简单方法?

我正在寻找使用svg图像并解析/处理不同的路径来进行自定义转换。 在Java中,简单地提取路径数据的最简单方法是什么? 我正在查看apache xmlgraphics / batik包,但是如何返回路径类型和参数并不是很明显。 有什么建议么?

如何使用Apache Batik将一个SVG图像叠加到另一个上?

我需要使用Batik覆盖2个SVG文件。 一个文件用作背景图像,为308px×308px,而第二个文件(260px×260px)是必须居中的前景图像(即背景图像的中心)。 我希望将操作的结果保存在第三个SVG文件中。 如果您熟悉Batik,我将非常感谢您的建议。 谢谢, 奥利维尔。

使用带有元素的另一个svg图像创建一个带有嵌入式base64字符串的SVG图像

我有一个SVG文件,其中包含几个元素(如路径,圆形,矩形等)。 我想将该SVG文件转换为具有嵌入式base64数据而非多个元素的SVG。 可以用Batik做到吗? 我正在进行的项目要求我只使用Java库。