最近在使用HighCharts进行图标统计分析的时候,客户要求对生成的统计结果图可以导出到Excel查看。
通过查看相关资料,在得知HighCharts通过SVG生成图标文件信息,那思路就基本确定了,将提交上来的SVG表述字符串转换成图片并写入Excel文件,并将Excel文件转换成流的形式返回到前端进行下载输出。查找Apache下的开源库batik可以完成SVG格式转换为图片的功能,开始着手进行代码开始。
在Maven中引入batik相关开发包,如下:
<dependency> <groupId>batik</groupId> <artifactId>batik-transcoder</artifactId> <version>1.6-1</version> </dependency>
利用batik的jar包,转换SVG需要生成的图片类型,生成输出流,写入Excel。Eclipse下编译运行,貌似一切顺利。 程序测试通过后,发布,在服务器上部署。
但问题来了,在部署到服务器上,一测试,在下载统计结果的时候,报错。(,什么情况!!心中千万只XX马奔腾而来。)本地测试OK的,部署怎么出问题了,部署的文件有问题?服务器环境不一致?
查看错误日志,提示,写道
少jar包?但通过比对本地和服务器上的jar包,没问题。网上找了一圈,没发现问题。最后没辙,既然少jar,那就补上。下载apache的crimson包,再一跑,继续报错,“提示用于解析xsl的版本过低,升级JDK到1.5什么的”。彻底晕菜,我用的JDK1.7啊。
整理一下思路,搜了一把crimson,结果还真发现了问题。
原来在解析XML文件的时候,crimson作为apache的早期版本,和现在JAXP采用的XML解析器Xerces并不通用。而我在引入的batik版本中,需要引用crimson作为xml解析器,显然引用的batik版本不正确。
最后通过查找正确的batik版本地址,导入项目,部署,终于拨开乌云见晴天了,服务器正常下载包含图片的Excel文件。
<dependency> <groupId>org.apache.xmlgraphics</groupId> <artifactId>batik-codec</artifactId> <version>1.7</version> </dependency>虽然部署成功,但还有一个问题没有解决。为什么eclipse通过jetty运行正常,但部署到tomcat就出现问题?可能是jetty和tomcat之间差异的问题吧,此问题留待以后继续解决。
相关推荐
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-...
这个是maven的另一个部分jar,可以去看一下简绍(https://blog.csdn.net/Fly_tom/article/details/81874197),把这个文件下载完成,需要把它解压到maven-repository中的org文件下,一定是要点击右键解压到当前...
官方版本,亲测可用
1. **添加依赖**:首先,在项目中添加Batik库的依赖,这可以通过Maven或Gradle等构建工具完成。 2. **解析SVG**:使用`SVGGeneratorContext`和`SVGGraphics2D`来解析SVG文件,创建SVG图形对象。 3. **绘制SVG**:将...
在Java 1.4及更高版本中使用Batik,开发者可以轻松地集成SVG功能到他们的应用程序中,创建交互式图形界面,或者生成高质量的图形输出。由于SVG是基于XML的,因此可以利用XML工具和库进行处理,这增加了其灵活性和可...
包含常用的maven jar包有需要请下载..
在Java开发中,Batik是一个非常重要的开源工具包,它由Apache软件基金会提供,主要用于处理SVG(Scalable Vector Graphics)格式的图像。SVG是一种基于XML的矢量图形标准,它允许开发者创建高质量、可缩放的图形,...
batik-all.jar
在Maven中,构建生命周期被划分为几个阶段,包括清理(clean)、默认(default)和站点(site)生命周期。默认生命周期包含了编译(compile)、测试(test)、打包(package)、验证(verify)、集成测试...
batik-all-1.7.jar包含了batik-1.7.jar
org.apache.batik.transcoder-1.6.0.jar
处理highcharts导出图片出现中文乱码所用到的jar包
官方版本,亲测可用
4. batik-1.8-0.12.svn1230816.el7.noarch.rpm - Apache Batik是一个用于在Java中操作SVG内容的图形库。 5. msv-msv-2013.5.1-7.el7.noarch.rpm - 这是一个用于软件版本管理的工具包,可能与Maven的构建过程相关。 6...
比如batik(一个SVG图形处理库)、msv(一个XML模式验证器)、fop(Apache FOP,一个XSL-FO格式转换器)、ant(一个Java编写的自动化构建工具)、xalan-j2(一个用于转换XML文档的库)、guava(Google开源的Java工具...
除此之外,还有其他软件包如batik、msv-msv、fop、ant、xalan-j2和guava,这些是Apache项目和开源社区提供的库和工具,它们可能是Maven插件功能实现中所需用到的第三方库。 安装此类软件包时,通常需要考虑到系统...
对于不熟悉Linux系统或RPM包管理器的用户来说,安装过程可能稍显复杂,因此文中也提供了安装指导的联系方式,便于用户在安装过程中遇到问题时能获得专业的帮助。 从中我们可以总结出几个重要知识点: 1. Maven是一...
"batik" 是一个图形渲染库,"msv" 是一个 XML 模式验证器,"fop" 是 Apache 基金会的 XSL-FO 处理器,"ant" 是 Apache 的另一个项目,一个 Java 构建工具,"xalan-j2" 是 XML 解析库,"guava" 是 Google 开源的 Java...
此处也提到,如果用户在安装过程中遇到问题,可以联系博主进行全程指导安装,这体现了发布者提供的额外技术支持服务。 文件中的标签“rpm”用于分类和标识该压缩包文件属于RPM格式,便于在文件管理系统中搜索和识别...
同时,描述中还提到了安装指导,如果在安装过程中遇到问题,可以通过私信博主获得全程的安装帮助。 从标签“rpm”可以了解到,该压缩包中包含的文件是基于RPM包管理器的格式,这是Red Hat及其衍生系统(如CentOS、...