Библиотека сайта rus-linux.net
Beyond Linux From Scratch. Version 2011-12-30 | ||
Назад | 47. PostScript | Вперед |
Пакет FOP-1.0
Знакомимся с пакетом FOP
В пакете FOP (Formatting Objects Processor — процессор форматирования объектов) находится программа форматирования, используемая при печати, управление которой осуществляется механизмом форматирования объектов XSL (XSL-FO). Это приложение на языке Java, которое читает дерево форматирования объектов и выводит формируемые страницы в указанный выходной поток. В настоящее время поддерживаются следующие выходные форматы - PDF, PCL, PostScript, SVG, XML (древовидное представление области), print, AWT, MIF и текст ASCI. Основной цель пакета — вывод в формат PDF.
Известно, что пакет правильно собирается и работает на платформе LFS-SVN-20101029.
Информация о пакете
- Загрузка (HTTP): http://archive.apache.org/dist/xmlgraphics/fop/source/fop-1.0-src.tar.gz
- Загрузка (FTP): ftp://anduin.linuxfromscratch.org/BLFS/svn/f/fop-1.0-src.tar.gz
- Контрольная сумма MD5: 95dcc4c2dd08b4bc88ce9ce1ee88c439
- Размер загружаемого пакета: 16,1 MB
- Оценочный размер требуемого дискового пространства: 360 MB
- Оценочное время сборки: 2,8 SBU
Дополнительные загрузки
Требуемые пакеты
- Патерны сохранения объектов, используемых для форматирования (OFFO):
http://downloads.sourceforge.net/offo/offo-hyphenation_v2.0.zip
a78171d47c9af223c51bbd42df36f26d
858 KB - Компоненты API для Java Advanced Imaging (JAI):
http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-i586-jdk.bin
a63b661c4940582aa1679233e5f518b2
3,4 MB
Зависимости пакета FOP
Обязательные
Xorg-7.6, Apache Ant-1.8.1 и компоненты API для Java Advanced Imaging (JAI)
Необязательные
JIMI SDK, XMLUnit, JAI Image I/O Tools, JEuclid, PMD (требует Jaxen) и Forrest (пакет Forrest используется только для пересборки документации)
Замечания для пользователей: http://wiki.linuxfromscratch.org/blfs/wiki/fop
Установка пакета FOP
ВажноВы должны запустить установку этого пакета из окна X; используйте сервер Xorg с поддержкой GL, поскольку в противном случае не пройдут некоторые тесты JUnit. Предпочтительно запустить окно X из консоли. |
Перед тем, как начинать сборку, убедитесь, что правильно установлено значение $JAVA_HOME
. Чтобы собрать Jimi SDK и/или классы расширений XMLUnit, обеспечьте, чтобы в переменной среды окружения CLASSPATH
был указан путь к соответствующим файлам .jar
.
Установка паттернов сохранения объектов OFFO
Прежде, чем начать сборку, распакуйте архив tar с исходными кодами FOP и файл zip с паттернами сохранения объектов в один и тот же директорий, а затем перейдите в корневой директорий дерева исходных кодов FOP. Скопируйте паттерны сохранения объектов XML в дерево исходных кодов FOP с помощью следующих команд:
cp ../offo-hyphenation/hyph/* hyph && rm -rf ../offo-hyphenation
Установка JAI
СоветКоманда $FOP_PKG_DIR/jai-1_1_3-lib-linux-i586-jdk.bin, указанная ниже, устанавливает компоненты JAI в дерево JDK. Прежде, чем установка будет продолжена, вам нужно будет просмотреть, а затем принять (путем нажатия на кнопку y) лицензионное соглашение. Вам нужно это учитывать в случае, если вы для сборки используете скрипты (автоматизируете сборку). В разделе "Автоматические процедуры сборки" в главе 2 имеется информация об автоматизации команд сборки. В конце этого раздела обсуждается конкретная информация об автоматизации инсталляции этого вида. |
В роли пользователя root перейдите в корень дерева с исходными кодами FOP и установите компоненты JAI с помощью следующих команд:
FOP_PKG_DIR=$(pwd)/.. && pushd $JAVA_HOME && sh $FOP_PKG_DIR/jai-1_1_3-lib-linux-i586-jdk.bin && popd
Установка компонентов FOP
Если пакет Forrest не установлен, то удалите на него ссылки, имеющиеся в файле build.xml:
sed -i -e "s/all,javadocs,docs/all,javadocs/" \ -e '\#${dist.bin.result.dir}/docs#,\#<copy>#d' build.xml
Откомпилируйте пакет FOP с помощью следующих команд:
ant dist
На шаге, описанном выше, выполняется регрессионные юнит тесты.
Теперь в роли пользователя root
выполните:
install -v -d -m755 /opt/fop-1.0 && mv -v dist-bin/fop-1.0/* /opt/fop-1.0 && ln -v -sf fop-1.0 /opt/fop
Пояснение команд
FOP_PKG_DIR=$(pwd)/..: Здесь предполагается, что пакеты с исходными кодами располагаются на один уровень выше текущего рабочего директория. По умолчанию это всегда так, но расположение пакетов может быть другим вследствие личного предпочтения. Если потребуется, измените этот параметр так, чтобы он соответствовал тому месту, где можно найти архив FOP.
sh $FOP_PKG_DIR/jai-1_1_3-lib-linux-i586-jdk.bin: Эта команда устанавливает компоненты JAI в структуру файлов JDK. Переменная $FOP_PKG_DIR
используется для указания места, куда будут устанавливаться исполняемые модули, собранные из исходного кода.
ant dist: Эта команда читает задание dist
из файла build.xml
, собирает пакет и запускает регрессионные юнит тесты. Также создается документация Java API и директорий, где будут располагаться только что созданные двоичные файлы. Этот директорий используется для установки пакета FOP на его постоянное место.
ln -v -sf fop-1.0 /opt/fop: Этот параметр необязателен — он создает удобную символическую ссылку с тем, чтобы не нужно было менять значение переменной $FOP_HOME
каждый раз, когда будет меняться версия пакета.
Конфигурирование пакета FOP
Конфигурационные файлы
~/.foprc
Подробнее о конфигурировании
Использование пакета FOP для обработки некоторых больших файловых объектов FO (в том числе и FO, создаваемых по файлам XML из BLFS) может привести к ошибкам памяти. Если вы не добавите параметр для команды java, используемой в скрипте fop, вы можете получать сообщения, похожие на то, что показано ниже:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
Чтобы избежать ошибок, похожих на эту, вам нужно передать дополнительный параметр для команды java, используемой в скрипте fop. Это можно сделать с помощью создания файла ~/.foprc
(который будет использоваться скриптом fop) и добавления параметра к переменной окружения FOP_OPTS
.
Скрипт fop ищет переменную среды окружения FOP_HOME
для того, чтобы получить доступ к библиотекам классов FOP. Вы также можете создать эту переменную в файле ~/.foprc
. Создайте файл ~/.foprc
с помощью следующих команд:
cat > ~/.foprc << "EOF" FOP_OPTS="-Xmx<RAM_Installed>m" FOP_HOME="/opt/fop" EOF
Замените <RAM_Installed>
значением, представляющим собой размер оперативной памяти, установленной на вашем компьютере (в мегабайтах). Например, это может быть FOP_OPTS="-Xmx768m"
. Чтобы получить дополнительную информацию, касающуюся памяти, используемой при работе FOP, смотрите ссылку http://xml.apache.org/fop/running.html#memory.
Чтобы включить скрипт fop в ваш путь, обновите ваш персональный или общесистемный профиль следующим образом:
PATH=$PATH:/opt/fop
Описание пакета
Установленные программы: fop
Установленные библиотеки: fop.jar и многочисленные классы библиотек поддержки, находящиеся в директории /opt/fop/{build,lib}
; компоненты JAI, в том числе libmlib_jai.so, jai_codec.jar, jai_core.jar и mlibwrapper_jai.jar
Установленные директории: /opt/fop-1.0
Краткое описание
fop | скрипт-обвертка для команды java, который создает среду FOP и передает необходимые параметры |
| содержит все классы Java пакета FOP |
Перевод сделан с варианта оригинала, датированного 2010-11-12 14:13:51 +0000
Предыдущий раздел: | Оглавление | Следующий раздел: |
Пакет ePDFView-0.1.7 | Пакет paps-0.6.8 |