Генерация TIFF с помощью Apache FOP 1.0 — TIFFImageEncoder4

Я успешно использую Apache FOP для создания PDF-файла с помощью задачи Ant. У меня также есть код Java (веб-служба с использованием Axis2), который успешно работает и создает PDF-файлы, но я использую Ant Task, так как он намного быстрее правильно тестирует мою таблицу стилей.

Теперь, когда у меня работает 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

Я гуглил и искал эту ошибку, и кажется, что есть требование включить инструменты JAI ImageIO в путь к классу.

Я нашел повторяющуюся ссылку: https://issues.apache.org/bugzilla/show_bug.cgi?id=49681

Я заметил, что файл jai_imageio.jar уже находится в моей папке ${fop.home}/build. Я немного новичок в Java, поэтому поправьте меня, если я ошибаюсь, но мне кажется, что JAR уже включен в путь к классам в моем вышеприведенном сценарии ANT?

Я попытался использовать веб-сервис - добавил jai_imageio.jar в путь сборки, и он переходит в WEB-INF/lib - получая ту же ошибку. Пробовали использовать разные цветовые конфигурации, как предложено в этой ветке ошибок, но безуспешно.

Реально борюсь с этим. Это расстраивает, так как генерация PDF работала хорошо. Поразите немного кирпичной стены с этим.

РЕДАКТИРОВАТЬ: после дополнительных исследований я должен указать, что я использую Windows 7 x64. Я переустановлю JRE x86 (попробую JRE 7).


person marc    schedule 14.10.2011    source источник


Ответы (2)


Я получил это, выполнив следующие шаги:

  1. Установите JRE 1.4 на целевой сервер (это необходимо для установки инструментов Jai image io). Должен быть x86 (32bit). а) 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.

У меня x64 и установлены x64 JRE и JDK. Это было корнем моей проблемы.

Это исправило это, поэтому мой веб-сервис работает в TomCat. Еще не пробовал ANT Task. Инструменты JAI ImageIO, похоже, зависят от DLL, которые работают только в 32-битной версии. Я предполагаю, что это не будет нормально работать в Eclipse, если оно 32-битное, и указывает на 32-битный JDK/JRE.

person marc    schedule 23.10.2011

Убедитесь, что это ImageIO TOOLS, а не просто ImageIO; две совершенно разные вещи.

Вот библиотеки, которые я использую в своем генераторе TIFF на основе FOP; Я избегаю конфигурации XML и использую свой собственный рендерер:

  • авалон-каркас-4.2.0.jar
  • батик-все-1.7.банка
  • Commons-io-1.4.jar
  • Commons-logging.jar
  • fop.jar
  • jai_imageio.jar
  • log4j-1.2.13.jar
  • XML-apis-ext-1.3.04.jar
  • xmlgraphics-commons-1.4.jar
person JoshDM    schedule 17.10.2011