最近在使用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文件下,一定是要点击右键解压到当前...
官方版本,亲测可用
在Java 1.4及更高版本中使用Batik,开发者可以轻松地集成SVG功能到他们的应用程序中,创建交互式图形界面,或者生成高质量的图形输出。由于SVG是基于XML的,因此可以利用XML工具和库进行处理,这增加了其灵活性和可...
1. **添加依赖**:首先,在项目中添加Batik库的依赖,这可以通过Maven或Gradle等构建工具完成。 2. **解析SVG**:使用`SVGGeneratorContext`和`SVGGraphics2D`来解析SVG文件,创建SVG图形对象。 3. **绘制SVG**:将...
包含常用的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包
官方版本,亲测可用
例如,在Maven中,你可以添加以下依赖: ```xml <groupId>org.krysalis.barcode4j <artifactId>barcode4j <version>2.1 <groupId>org.apache.xmlgraphics <artifactId>batik-bridge <version>1.12 ...
在IT行业中,尤其是在图形处理和Web开发领域,Java是一种广泛使用的编程语言,它提供了丰富的库和工具来处理各种文件格式,包括SVG(可缩放矢量图形)和常见的位图格式如PNG、JPEG。本篇将详细介绍如何使用Java进行...
1. 引入依赖:在Java项目中,你需要将下载的jar包添加到类路径(classpath)中,或者在Maven或Gradle等构建工具的配置文件中声明依赖。 2. 创建HTML2Image对象:通过调用相关的构造函数创建一个HTML2Image实例,...
《AI图标库——CrystalSVG.jar在Java开发中的应用与解析》 在当今的软件开发领域,尤其是图形用户界面(GUI)的设计中,高质量的图标扮演着至关重要的角色。AI(Artificial Intelligence)图标库因其独特性和多样性...
在Eclipse中运行此代码之前,确保已经正确地添加了Batik库到项目依赖中。你可以通过Maven或Gradle将它引入,或者直接下载JAR文件并添加到项目的类路径中。然后,你可以按照以下步骤进行: 1. 创建一个SVG图形的输入...
Java解析xls文档库主要指的是Apache POI项目,这是一个流行的开源库,用于在Java环境中读取、写入和修改Microsoft Office格式的文件,包括xls(Excel 97-2007 BIFF8格式)和xlsx(Excel 2007及以上版本的OOXML格式)...
2. **图形输出**: 通过使用Apache Batik库,Barcode4J能够生成SVG(可缩放矢量图形)格式的条形码,这种格式具有高质量、无像素损失的特点,适合在网页和PDF文档中使用。 3. **XML配置**: Barcode4J使用XML配置文件...