Создание TIFF с помощью Apache FOP 1.0 - TIFFImageEncoder4 - PullRequest
2 голосов
/ 14 октября 2011

Я успешно использую Apache FOP для создания PDF-файла с помощью задачи Ant.У меня также есть Java-код (веб-служба, использующая Axis2), успешно работающая и создающая 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

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

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

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

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

Действительно борется с этим.Это расстраивает, так как генерация PDF работала хорошо.Ударьте немного о кирпичную стену с этим.

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

Ответы [ 2 ]

1 голос
/ 23 октября 2011

Я получил эту работу, выполнив следующие действия:

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

Я нахожусь на x64 и установил x64 JRE и JDK.Это был корень моей проблемы.

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

0 голосов
/ 18 октября 2011

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

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

  • Авалон-каркасного 4.2.0.jar
  • батик все-1.7.jar
  • Обще-ю-1.4.jar
  • Обще-logging.jar
  • fop.jar
  • jai_imageio.jar
  • log4j-1.2.13.jar
  • XML-АПИС-доб-1.3.04.jar
  • xmlgraphics-Обще-1.4.jar
...