`
jacally
  • 浏览: 770142 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

batik详解(1) 转载

    博客分类:
  • SVG
阅读更多
一、概述
Batik是为想使用svg格式图片来实现各种功能的应用程序和Applet提供的一个基于java的工具包。
工程创建的目的是为开发者提供一系列可以结合或单独使用来支持特殊的svg解决方案的核心模块。模块主要有SVGParser,SVGGernerator,SVGDOM。Batik工程的其他目的是使它具有高度的扩展性----举个例子,Batik
允许开发者使用自定义的SVG元素。即使工程的目标是提供一系列核心模块,但是还是提供了一个完整的SVG浏
览器,以便证实各个模块的有效性和交互性。
二、batik的用途
通过Batik,你可以在任何使用到java的地方操作SVG文档。你也可以使用各种Batik模块来在你的应用程序和Applet
中来生成,操作和转换你的svg图像。
batik使通过java处理SVG内容变的简单。举个例子,通过使用batik的SVGGernerate模块,java应用程序和Applet
可以非常简单的使输出图像的格式为SVG。使用batik的SVG viewing component, 应用程序或者Applet可以非常容
易的整合SVG查看和交互功能。另外还可以使用Batik的模块将SVG转换为其他格式,比如说JPEG等图像格式和
PDF等其他向量格式.
Batik工具包包含如下各项:
模块 

工具和应用程序

三、SVG DOM API

DOM API定义了一个接口叫做DOMimplementation,这个接口用来表现任意DOM implementation之间的连
接。这个类的作用是通过提供方法创建一个document来连接一个指定的DOM实例。然后具体的Document
表现为一个XML Document 并且跟各种各样的DOM对象工厂比如Element,Attr,Text那样动作。

那么怎样才能获得一个依赖于你使用的DOM Implementation的DOMImplementation 实例呢?在Batik中DOM
Implementation存在于包org.apache.batik.dom.svg中,类名为SVGDOMImplementation。以下例子表示怎
样获取一个具体的DOMImplementation对象:

import org.w3c.dom.DOMImplementation;
import org.apache.batik.dom.svg.SVGDOMImplementation;

DOMImplementation impl = SVGDOMImplementation.getDOMImplementation();
一旦你已经拥有了一个DOMImplementation 实例,你将不能再依赖于batik的指定代码而要准备好使用
DOM API了。
1.创建一个Doucument
使用DOMImplementation,你现在将可以创建一个Document。下面将举例说明怎么创建一个SVG Document。
注意Batik的
DOM implementation可以被用来表现一个SVG Document片断或者任意的XML Document。注意通过选择
命名空间URI和
SVG根元素本地名,我们将创建一个SVG Document。
import org.apache.batik.dom.svg.SVGDOMImplementation;
import org.w3c.dom.Document;

// 在SVGDOMImplementation中我们使用了一个不变的常量
// but we could have used "http://www.w3.org/2000/svg".
String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
DOMImplementation impl = SVGDOMImplementation.getDOMImplementation();
Document doc = impl.createDocument(svgNS, "svg", null);
 当我们已经创建了一个SVG Document时,如果需要的话,我门可以映射这个document到一个SVGDocument。
2.创建一个SVG Document
最后使用Document对象,我们现在将构造SVG内容。注意上边创建的document,同时支持通用的XML和SVG。
虽然Batik的DOM implementation是一个SVG DOM implementation,但是依赖于已经呈现的Document
的指定的SVG方法,不能用于此点。
Document 可以使用DOM Leve2核心方法创建。以下的例子显示怎样在一个(400,450)范围的SVG屏幕中在
(10,20)点创建一个大小为(100,50)的红色矩形。
 
import org.apache.batik.dom.svg.SVGDOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

DOMImplementation impl = SVGDOMImplementation.getDOMImplementation();
String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
Document doc = impl.createDocument(svgNS, "svg", null);

// 获得根元素('svg' 元素).
Element svgRoot = doc.getDocumentElement();

// 设置'svg'根元素的宽,高属性.
svgRoot.setAttributeNS(null, "width", "400");
svgRoot.setAttributeNS(null, "height", "450");

// 创建矩形
Element rectangle = doc.createElementNS(svgNS, "rect");
rectangle.setAttributeNS(null, "x", "10");
rectangle.setAttributeNS(null, "y", "20");
rectangle.setAttributeNS(null, "width", "100");
rectangle.setAttributeNS(null, "height", "50");
rectangle.setAttributeNS(null, "fill", "red");

// 绑定 rectangle 到'svg'根元素.
svgRoot.appendChild(rectangle);
3.从一个SVG文件中创建一个Document
使用Batik,你也可以从一个URI,一个InputStream或者一个Reader中使用SAXSVGDocumentFactory
创建一个SVG DOM树。下面的例子将举例说明怎么从一个URI中使用SAXSVGDocumentFactory类来创建|
一个SVG document。
 
import java.io.IOException;

import org.apache.batik.dom.svg.SAXSVGDocumentFactory;
import org.apache.batik.util.XMLResourceDescriptor;

import org.w3c.dom.Document;

try {
    String parser = XMLResourceDescriptor.getXMLParserClassName();
    SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser);
    String uri = "http://www.example.org/diagram.svg";
    Document doc = f.createDocument(uri);
} catch (IOException ex) {
    // ...
}
分享到:
评论

相关推荐

    batik框架 jar包

    **Batik框架详解** Batik是Apache软件基金会开发的一个开源项目,主要专注于SVG(Scalable Vector Graphics)标准的实现。SVG是一种基于XML的矢量图形格式,它允许创建高质量、可缩放的图形,广泛应用于网页设计、...

    apache Batik.zip

    1. **fop.jar**:FOP(Formatting Objects Processor)是Apache的一个子项目,它实现了XSL-FO(Extensible Stylesheet Language - Formatting Objects)标准。XSL-FO是一种用于将XML数据转换为各种输出格式的规范,...

    batik所有架包.rar

    batik-anim batik-awt-util batik-bridge batik batik-codec batik-css batik-dom batik-ext batik-extension batik-gui-util batik-gvt batik-parser batik-rasterizer batik-script batik-svg-dom batik-...

    使用batik转换svg文件

    1. **安装与配置Batik**: 在使用Batik之前,首先需要从Apache官方网站下载并安装 Batik SDK。解压后,你可以找到包含各种工具和库的目录,如`batik-transcoder`、`batik-rasterizer`和`batik-compiler`等。 2. **...

    batik-1.13.rar

    1. SVG解析器:这个组件负责将SVG文档转换成内部的抽象语法树(AST),使得开发者可以通过编程方式访问和修改SVG元素。 2. SVG渲染器: Batik的渲染引擎能够将AST转换成像素图像,可以在屏幕上显示或输出到其他图像...

    batik的相关jar包

    **Batik相关jar包详解** 在Java开发中,Batik是一个非常重要的开源工具包,它由Apache软件基金会提供,主要用于处理SVG(Scalable Vector Graphics)格式的图像。SVG是一种基于XML的矢量图形标准,它允许开发者创建...

    batik-1.8 (1).jar

    org.apache.batik包 batik包,用于生成svg格式的文件,实现svg,swf转png ,提供word to html

    基于Batik的java客户端程序

    1. **添加依赖**:首先,在项目中添加Batik库的依赖,这可以通过Maven或Gradle等构建工具完成。 2. **解析SVG**:使用`SVGGeneratorContext`和`SVGGraphics2D`来解析SVG文件,创建SVG图形对象。 3. **绘制SVG**:将...

    batik相关 jar包大全

    包括:batik-all-1.11.jar,batik-anim-1.11.jar,batik-codec-1.11.jar,batik-constants-1.11.jar,batik-svgbrowser-1.11.jar batik-swing-1.11.jar,fop-transcoder-allinone-2.3.jar 等等, 特分享出来供大家一起学习...

    batik-all.jar

    batik-all.jar

    batik 2.7 jars

    batik-anim-1.7.jar batik-awt-util-1.7.jar batik-bridge-1.7.jar batik-codec-1.7.jar batik-css-1.7.jar batik-dom-1.7.jar batik-ext-1.7.jar batik-gvt-1.7.jar batik-js-1.7.jar batik-parser-1.7.jar batik-...

    org.apache.batik包

    1. **SVG浏览器组件(SVG User Agent)**:这是一个JavaScript支持的SVG渲染引擎,能够解析SVG文档并将其呈现为可视化的图形。它可以嵌入到Java应用程序中,用于显示SVG图像或者作为独立的应用程序运行。 2. **SVG...

    Batik 1.7 API CHM格式

    Batik是使用svg格式图片来实现各种功能的应用程序以及Applet提供的一个基于java的工具包。 通过Batik,你可以在JAVA可以使用的地方操作SVG文档,您还可以在你的应用程序使用Batik模块来生成 , 处理和转码SVG图像。...

    batik源码(包含sample)

    1. **SVG解析器**: Batik提供了SVG解析器,可以将SVG文档转化为内部表示形式,便于后续处理。它遵循W3C SVG规范,能够正确处理SVG文件中的元素、属性和样式。 2. **SVG渲染引擎**: Batik的渲染引擎负责将解析后的...

    Batik详细教程

    Batik 是为想使用 svg 格式图片来实现各种功能的应用程序和 Applet 提供的一个基于 java 的工具包。 工程创建的目的是为开发者提供一系列可以结合或单独使用来支持特殊的 svg 解决方案的核心模块。模块主要有 ...

    javaHighcharts 导出图表的batik 等资源包

    import org.apache.batik.transcoder.Transcoder; import org.apache.batik.transcoder.TranscoderException; import org.apache.batik.transcoder.TranscoderInput; import org.apache.batik.transcoder....

    Eclipse 的svg插件batik-plugin

    Batik是为想使用svg格式图片来实现各种功能的应用程序和Applet提供的一个基于java的工具包。 工程创建的目的是为开发者提供一系列可以结合或单独使用来支持特殊的svg解决方案的核心模块。模块主要有SVGParser,...

    batik-svg-dom-1.6-1.jar

    官方版本,亲测可用

    org.apache.batik.transcoder-1.6.0.jar

    org.apache.batik.transcoder-1.6.0.jar

    batik-1.7batik-1.7batik-1.7

    batik-1.7 batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7batik-1.7

Global site tag (gtag.js) - Google Analytics