Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30342
  • 博文数量: 9
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 105
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-17 16:09
文章分类
文章存档

2010年(2)

2008年(7)

我的朋友
最近访客

分类:

2008-04-17 16:53:31

graphviz 虽然很强大,不过有两个地方不足对中文支持很差,在Windows下还可以用utf-8来处理,在linux下面就很麻烦,我尝试多次也解决不了 是graphviz和java之间无法交互,在Java中我只能通过新开一个进程来调用graphviz,完全是blackbox,无法控制,也无法确保图形是否正确绘制。经过多次尝试,我发现了几个解决方案 1,我发现了graphviz还有一个不起眼的子项目grappa,这个项目是完全用java写的,按照它的文挡说,算是一个简化版本的graphviz下载回来一用, 开始是大失所望,原来简化版居然没有graphviz最有价值的自动布局功能.直接生成的图形全部都堆叠在一起, 完全不可用,正打算放弃的时候,发现grappa的的归类在graphviz的view类别中,突然开窍了, 返回回去查,原来graphviz支持多种输出,包括输出.dot文件,svg文件等. 这些文件都是文本的,很好处理,我试了试通过graphviz来生成dot文件和svg文件, 很快,而且中文也没有问题, 经过处理以后的dot文件比原始的dot文件大了不少,查看了以下,发现所有的结点,图形都的是自动布局好了,dot文件里面一一标明了坐标. 这下用grappa处理很成功. 顺利在java中画出图形,这样一来,第一个办法就是通过graphviz来生成dot, 然后通过grappa来显示. 可以在applet中显示都没有问题, grappa支持很老的Java1.1,看来ie中是可以用的 2, graphviz原来可以生成svg文件!,这下就好办多了, 不需要grappa, 通过jakarta的batik包, 我很顺利的通过servlet把svg转换为jpg图片, 中文是支持的 如果有问题可以参见(jdk1.5 在linux下字体设置) . 需要注意的是graphviz对中文没有做特殊处理,在最后生成的xml他会写encoding="utf-8", 但是实际上的编码是你系统默认的编码(我的是gbk) ,所以要手动去调整一下编码. 如果你够变态. 可以用batik把svg读入, 再输出为svg, 最终的svg兼容性就非常好了, 可以通过adobe的svg插件直接在ie中显示.
阅读(3379) | 评论(2) | 转发(0) |
0

上一篇:SVG的DOM树

下一篇:HTML中嵌入SVG

给主人留下些什么吧!~~

chinaunix网友2009-03-03 11:33:00

在liux下呢、

chinaunix网友2008-09-17 10:51:19

请问graphviz在linux下运用应该怎么配置呢?