1

I have been using Apache Batik and trying to modify an SVG file and then render it as a JPEG.

I convert the SVG file into a w3c Document. then I get the element that I need to update. but when I try to get or set the text in that element I get the following error:

java.lang.AbstractMethodError:org.apache.batik.dom.svg.SVGOMTextElement.getTextContent()Ljava/lang/String;

My code is as follows:

final String parser = XMLResourceDescriptor.getXMLParserClassName();
final SAXSVGDocumentFactory svgDocFactory = new SAXSVGDocumentFactory(parser);
svgDoc = svgDocFactory.createDocument(svgUri);
final Element element = svgDoc.getElementById("MainTitle");
System.out.println("Element Text:" + element.getTextContent().toString());

My dependecies for apache Batik in pom.xml is as follows

<properties>
    <java-version>1.7</java-version>
    <batik.svg.version>1.6-1</batik.svg.version>
</properties>

<dependencies>
    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-util</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-rasterizer</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-transcoder</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-parser</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-dom</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-svg-dom</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-xml</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-bridge</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-gvt</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-awt-util</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-svggen</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-ext</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-css</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-gui-util</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-script</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>

    <dependency>
        <groupId>batik</groupId>
        <artifactId>batik-extension</artifactId>
        <version>${batik.svg.version}</version>
    </dependency>
</dependencies>

Can someone please help me how to update text values of an element in the SVG Dom document.

I will be glad if you can point me to a link where I can get samples or documentation of using the DOM api.

Thanking You,

Lealem Admassu
  • 458
  • 4
  • 10

0 Answers0