使用Apache FOP 1.0生成TIFF - TIFFImageEncoder4

时间:2011-10-14 16:16:52

标签: java tiff apache-fop

我已成功使用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)。

2 个答案:

答案 0 :(得分:1)

我按照以下步骤完成了这项工作:

  1. 在目标服务器上安装JRE 1.4(Jai image io工具需要这个 安装)。必须是x86(32位)。     a)j2re-1_4_2_19-windows-i586-p.exe正常工作

  2. 安装JRE7(同样,必须是x86)

  3. 安装Tomcat6 - 将JRE7设置为JRE。

  4. 确保将JAVA_HOME设置为根JRE7文件夹。

  5. 确保%JAVA_HOME%\ bin位于PATH变量中

  6. 安装jai_imageio-1_1-lib-windows-i586-jre.exe。它应该安装到JRE7。

  7. 我在x64上安装了x64 JRE和JDK。这是我问题的根源。

    这解决了这个问题,所以我的网络服务在TomCat中运行。还没有尝试过ANT任务。 JAI ImageIO Tools似乎依赖于DLL,它只能在32位工作。 我假设如果32位,并且指向32位JDK / JRE

    ,这在Eclipse中将无法正常工作

答案 1 :(得分:0)

确保它是ImageIO TOOLS 而不仅仅是ImageIO;两件完全不同的东西。

以下是我在基于FOP的TIFF生成器中使用的库;我避免使用XML配置并直接使用我自己的自定义渲染器:

  • 的Avalon框架-4.2.0.jar
  • 蜡染所有-1.7.jar
  • 公地-IO-1.4.jar
  • 公地logging.jar
  • fop.jar
  • jai_imageio.jar
  • 的log4j-1.2.13.jar
  • XML的API-EXT-1.3.04.jar
  • xmlgraphics-公地1.4.jar