Le Processeur Apache / FOP

publicité
Le Processeur Apache / FOP
1
© Glaus & Ruckstuhl TECFA 2002
Utilisation de FOP
• FOP marche avec Cocoon (pas toujours la dernière
version)
• On peut créer des servlets FOP avec n’importe quel
serveur Java
• On peut générer des fichiers PDF (et autres formats)
en mode "batch"
• FOP est une classe Java 2, et une distribution binaire
est disponible à l’url: http://xml.apache.org/
2
© Glaus & Ruckstuhl TECFA 2002
FOP à Tecfa avec Cocoon
• Le processeur FOP s’utilise le plus souvent avec le
processeur XSLT
• Le fichier XSL contient une processing instruction
pour l’élément racine et une définition du namespace
3
© Glaus & Ruckstuhl TECFA 2002
FOP avec Cocoon
Fichier XML
<?xml version="1.0"?>
<?xml-stylesheet href="hello-page-xslfo.xsl" type="text/xsl"?>
<?cocoon-process type="xslt"?>
4
© Glaus & Ruckstuhl TECFA 2002
FOP avec Cocoon
5
Fichier XSL / Cocoon
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0" >
<!-- rule for the whole document: root element is page -->
<xsl:template match="page">
<xsl:processing-instruction name="cocoon-format">type="text/xslfo"
</xsl:processing-instruction>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
.......
<!-- Definition of a page sequence -->
<fo:page-sequence master-name="first">
<fo:flow flow-name="xsl-region-body" font-size="14pt" line-height="14pt">
<xsl:apply-templates/>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
© Glaus & Ruckstuhl TECFA 2002
FOP en batch
Installation
• Il faut installer un Java 2 (si ce n’est pas déjà fait).
• Décomprimer l’archive FOP binaire qq part dans votre
système. Ensuite il faut chercher dans le répertoire ou se
trouvent les archives ".jar utilisées ci-dessous.
• Ensuite faire/installer un fichier shell script pour lancer
l’application FOP qui se trouve dans la classe Java
org.apache.fop.apps.Fop
6
© Glaus & Ruckstuhl TECFA 2002
FOP en batch
Fichier fop.bat à placer dans c:\bin de Windows
java -cp c:\soft\fop\bin\fop.jar;c:\soft\fop\bin\batik.jar;c:\soft\fop\bin\xalan
2.0.0.jar;c:\soft\fop\bin\xerces-1.2.3.jar;c:\soft\fop\bin\avalon-framework4.0.jar;c:\soft\fop\bin\logkit-1.0.jar org.apache.fop.apps.Fop %1 %2 %3 %4
%5 %6 %7 %8
7
© Glaus & Ruckstuhl TECFA 2002
Utilisation de FOP sur Solaris



8
Ouvrir un terminal sur tecfasun5.unige.ch
Aller jusqu’au répertoire où se trouvent les
fichiers xml , xsl et dtd que vous allez utiliser
pour Fop
Taper fop dans le terminal suivi des arguments
de l’application
© Glaus & Ruckstuhl TECFA 2002
Arguments de l’application FOP
tapez "fop" dans un terminal
[INPUT]
infile xsl:fo input
-fo infile
-xml infile
-xsl stylesheet
[OUTPUT]
outfile
-pdf outfile
-awt
-mif outfile
-pcl outfile
-txt outfile
-print
9
file (the same as the next)
xsl:fo input file
xml input file, must be used together with -xsl
xslt stylesheet
input will be rendered as pdf file into outfile
input will be rendered as pdf file (outfile req’d)
input will be displayed on screen
input will be rendered as mif file (outfile req’d)
input will be rendered as pcl file (outfile req’d)
input will be rendered as text file (outfile req’d)
input file will be rendered and sent to the printer
see options with "-print help"
[Examples]
Fop foo.fo foo.pdf
Fop -fo foo.fo -pdf foo.pdf (does the same as the previous line)
Fop -xsl foo.xsl -xml foo.xml -pdf foo.pdf
Fop foo.fo -mif foo.mif
Fop foo.fo -print or Fop -print foo.fo
Fop foo.fo -awt
© Glaus & Ruckstuhl TECFA 2002
Arguments de l’application FOP
Syntaxe:
Fop [options] [-fo|-xml] infile [-xsl file] [-awt|-pdf|mif|-pcl|-txt|-print] <outfile>
Syntaxe pour créer un fichier pdf:
fop -xml fichier.xml -xsl fichierfo.xsl -pdf fichier.pdf
10
© Glaus & Ruckstuhl TECFA 2002
Debogage de Schneider
• Pour trouver des erreurs logiques dans votre feuille de style, on conseille de
produire du .fo avec un processeur XSL et ensuite de valider
• Sur Solaris on utilise la commande ’xslatefop’ qui fait appel au processeur Xalan
xslatefop -IN fichier.xml -XSL fichierfo.xsl -XML > fichier.fo
• Sur PC on vous conseille donc de faire un 2ème fichier *.bat qui s’appelle par ex,
xslfop.bat et qui contient quelquechose comme:
@echo off
set JAVA_HOME=C:\soft\jdk1.3
set path=%JAVA_HOME%\bin;%path%
REM echo path : %path%
echo Traitement XSLT avec Java dans %java_home%
REM TOUT LE RESTE DOIT SE TROUVER SUR UNE SEULE LIGNE !!!
set CLASSPATH=c:\soft\fop\xalan-2.0.0.jar;c:\soft\fop\xerces-1.2.3.jar
REM ON LANCE l’application avec les arguments de la ligne de commande
java org.apache.xalan.xslt.Process %1 %2 %3 %4 %5 %6 %7 %8
11
© Glaus & Ruckstuhl TECFA 2002
Téléchargement