我已成功使用Apache FOP使用Ant任务生成PDF。 我也有Java代码(使用Axis2的Web服务)成功地工作和生成PDF,但一直在使用Ant任务,因为它可以更快地正确测试我的样式表。
现在我有PDF工作,我试图满足我正在进行的项目的第二个要求 - 即生成TIFF。相同的样式表,相同的源文档,但输出是TIFF。
ANT任务如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<project name="FOPAnt" default="generate-pdf-from-transform" basedir=".">
<property name="fop.home" value="D:\Dev\Java\libraries\fop-1.0-bin\fop-1.0"/>
<taskdef name="fop" classname="org.apache.fop.tools.anttasks.Fop">
<classpath>
<fileset dir="${fop.home}/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="${fop.home}/build">
<include name="*.jar"/>
</fileset>
</classpath>
</taskdef>
当我运行它时,我收到以下错误:
BUILD FAILED
D:\Dev\Java\FopConverter\workspace\FOPAnt\build.xml:30: java.lang.Error: TIFFImageEncoder4
我用google搜索并搜索了这个错误,似乎有必要在类路径中包含JAI ImageIO工具。
我发现的定期参考是这样的: https://issues.apache.org/bugzilla/show_bug.cgi?id=49681
我注意到jai_imageio.jar实际上已经在我的${fop.home}/build
文件夹中了。
我是一个Java新手,所以如果我错了,请纠正我,但在我看来,JAR是否包含在我上面的ANT脚本中的类路径中?
我尝试过使用webservice - 将jai_imageio.jar添加到构建路径并进入WEB-INF/lib
- 得到相同的错误。
尝试过使用Bug线程中建议的不同颜色配置,但没有运气。
真的很挣扎。令人沮丧的是,PDF生成效果很好。 用这个打了一堵砖墙。
编辑:经过更多的研究,我应该指出我使用的是Windows 7 x64。我将重新安装x86 JRE(将尝试JRE 7)。答案 0 :(得分:1)
我按照以下步骤完成了这项工作:
在目标服务器上安装JRE 1.4(Jai image io工具需要这个 安装)。必须是x86(32位)。 a)j2re-1_4_2_19-windows-i586-p.exe正常工作
安装JRE7(同样,必须是x86)
安装Tomcat6 - 将JRE7设置为JRE。
确保将JAVA_HOME设置为根JRE7文件夹。
确保%JAVA_HOME%\ bin位于PATH变量中
安装jai_imageio-1_1-lib-windows-i586-jre.exe。它应该安装到JRE7。
我在x64上安装了x64 JRE和JDK。这是我问题的根源。
这解决了这个问题,所以我的网络服务在TomCat中运行。还没有尝试过ANT任务。 JAI ImageIO Tools似乎依赖于DLL,它只能在32位工作。 我假设如果32位,并且指向32位JDK / JRE
,这在Eclipse中将无法正常工作答案 1 :(得分:0)
确保它是ImageIO TOOLS 而不仅仅是ImageIO;两件完全不同的东西。
以下是我在基于FOP的TIFF生成器中使用的库;我避免使用XML配置并直接使用我自己的自定义渲染器: