fop-2.7

Introduction à fop

Le paquet FOP (Formatting Objects Processor) contient un formateur d'impression guidé par les objets de formatage XSL (XSL-FO). C'est une application Java qui lit une arborescence d'objets de formatage et qui produit les pages qui en résultent vers une sortie spécifique. Les formats de sortie actuellement supportés comprennent le PDF, PCL, PostScript, SVG, XML (représentation en arborescence de zone), print, AWT, MIF et le texte ASCII. La cible de sortie principale est le PDF.

[Note]

Note

Development versions of BLFS may not build or run some packages properly if dependencies have been updated since the most recent stable versions of the book.

Informations sur le paquet

  • Téléchargement (HTTP) : https://archive.apache.org/dist/xmlgraphics/fop/source/fop-2.7-src.tar.gz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 : 7c67fe91c39d143f024ca4e3b60d7942

  • Taille du téléchargement : 26 Mo

  • Estimation de l'espace disque requis : 530 Mo (dont les fichiers téléchargés dans le répertoire personnel de l'utilisateur qui construit)

  • Estimation du temps de construction : 0.4 SBU

Téléchargements supplémentaires

Téléchargements supplémentaires requis :

Paquets recommandés

Dépendances de fop

Requises

apache-ant-1.10.12

Facultatives

un environnement graphique (pour lancer les tests), JAI Image I/O Tools et JEuclid

Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/fop

Installation de fop

Assurez-vous que $JAVA_HOME est correctement paramétré avant de commencer la construction. Pour construire les classes d'extension JIMI SDK et XMLUnit, assurez-vous que les fichiers .jar correspondants peuvent être trouvés par la variable d'environnement CLASSPATH.

Installation des patrons de césure OFFO

Copiez les patrons de césure XML dans l'arborescence des sources de fop en lançant les commandes suivantes :

unzip ../offo-hyphenation.zip &&
cp offo-hyphenation/hyph/* fop/hyph &&
rm -rf offo-hyphenation

Installer un binaire Maven temporaire

À partir de fop-2.5, le système de construction Maven est requis. Nous utilisons le binaire fournit par apache, que nous installons à un emplacement temporaire :

tar -xf ../apache-maven-3.8.4-bin.tar.gz -C /tmp

Installer les composants fop

La commande javadoc venant avec OpenJDK 10 et suivants est devenue plus stricte qu'avant à propos de la conformité des commentaires javadoc dans le code source vers l'HTML. La documentation de FOP ne respecte pas ces standards, aussi les tests de conformité ont été désactivés. Cela peut être fait avec la commande suivante :

sed -i '\@</javad@i\
<arg value="-Xdoclint:none"/>\
<arg value="--allow-script-in-comments"/>\
<arg value="--ignore-source-errors"/>' \
    fop/build.xml

Le fichier build.xml appelle une ancienne version des composants PDFBox qui ne sont plus disponibles. Copiez les composants PDFBox récents dans l'arborescence des sources :

cp ../{pdf,font}box-2.0.25.jar fop/lib

Compilez fop en exécutant les commandes suivantes :

cd fop &&

LC_ALL=en_US.UTF-8                     \
PATH=$PATH:/tmp/apache-maven-3.8.4/bin \
ant all javadocs &&

mv build/javadocs .

Ce paquet possède une suite de tests, mais l'infrastructure java installée dans ce livre ne permet pas de les lancer.

Maintenant, installez Fop en tant qu'utilisateur root :

install -v -d -m755 -o root -g root          /opt/fop-2.7 &&
cp -vR build conf examples fop* javadocs lib /opt/fop-2.7 &&
chmod a+x /opt/fop-2.7/fop                                &&
ln -v -sfn fop-2.7 /opt/fop

Il reste à nettoyer ce que nous avons fait :

rm -rf /tmp/apache-maven-3.8.4

Explication des commandes

sed -i ... build.xml : cela ajoute trois paramètres à la commande javadoc, empêchant certaines erreurs de se produire en construisant la documentation.

export LC_ALL=en_US.UTF-8 : le compilateur échoue si vous utilisez une locale ASCII.

ant target : Ceci lit le fichier build.xml et construit la cible : compile compile les sources java, jar-main génère les archives jar, jar-hyphenation génère les patrons de césure pour FOP, junit lance les tests junit et javadocs construit la documentation. La cible all lance toutes les cibles précédentes.

ln -v -sf fop-2.7 /opt/fop : Ceci est facultatif et crée un lien symbolique pratique pour que $FOP_HOME n'ait pas besoin d'être changé à chaque changement de version du paquet.

Configuration de fop

Fichiers de configuration

~/.foprc

Informations sur la configuration

Utiliser fop pour traiter de gros FO (dont les FO dérivés des sources XML de LFS) peut conduire à des erreurs de mémoire. À moins d'ajouter un paramètre à la commande java utilisée dans le script fop vous pouvez obtenir des messages similaires à ceci :

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

Pour éviter de telles erreurs, vous devez passer un argument supplémentaire à la commande java utilisée dans le script fop. Ceci peut se faire en créant un fichier ~/.foprc (qui est sourcé par le script fop) et en ajoutant le paramètre à la variable d'environnement FOP_OPTS.

Le script fop cherche une variable d'environnement FOP_HOME pour localiser les bibliothèques de classe fop. Vous pouvez créer cette variable en utilisant le fichier ~/.foprc aussi. Créez un fichier ~/.foprc avec les commandes suivantes :

cat > ~/.foprc << "EOF"
FOP_OPTS="-Xmx<RAM_Installed>m"
FOP_HOME="/opt/fop"
EOF

Remplacez <RAM_Installed> avec un nombre représentant la quantité de RAM installée dans votre ordinateur (en mégaoctets). Par exemple, FOP_OPTS="-Xmx768m".

Pour inclure le script fop dans votre path, mettez à jour le profil système avec la commande suivante en tant qu'utilisateur root :

cat > /etc/profile.d/fop.sh << "EOF"
# Begin /etc/profile.d/fop.sh

pathappend /opt/fop

# End /etc/profile.d/fop.sh
EOF
[Note]

Note

L'exécution de fop peut être assez verbeuse. Par défaut le niveau de journalisation est INFO et peut être changé en FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE, ALL ou OFF. Pour ce faire, éditez $JAVA_HOME/jre/lib/logging.properties et changez les entrées pour .leval et java.util.logging.ConsoleHandler.level à la valeur désirée.

Contenu

Programmes installés: fop
Bibliothèques installées: fop.jar et de nombreuses bibliothèques support de classes situées dans /opt/fop/{build,lib} ; Les composants JAI contiennent libmlib_jai.so, jai_codec.jar, jai_core.jar et mlibwrapper_jai.jar
Répertoire installé: /opt/fop-2.7

Descriptions courtes

fop

est un script enveloppe pour la commande java qui initialise l'environnement fop et passe les paramètres requis

fop.jar

contient toutes les classes Java de fop

Last updated on