J'utilise FOP (sous Cocoon) pour transformer des pages XML en pages PDF à l'aide d'une feuille de style XSL(-FO).
J'ai un problème récurrent lors de la transformation de certaines pages alors que d'autres pages s'affichent sans probleme en utilisant la meme feuille de style.
J'ai le message suivant :
java.lang.RuntimeException: org.apache.fop.apps.FOPException: inline formatting objects cannot be directly under flow
Je ne comprends pas du tout ce charabiat. Quelqu'un peut m'aider à dechiffrer l'erreur?
Voici un exemple de page qui "foire" :
et voici ma feuille de style tout ce qu'il y a de plus simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 <?xml version="1.0" encoding="ISO-8859-1" ?> - <page id="telecom"> <title>Réseaux et télécoms</title> - <actions> <print /> <xml /> <pdf /> </actions> - <content> <subtitle>Des idées pour communiquer !</subtitle> - <para> <et>eTransparence</et> effectue une étude des besoins du client en matière de transfert d'information. </para> - <para> Les techniciens d' <et>eTransparence</et> réalisent sur chantier des systèmes de liaison (câble Cuivre, câble Fibre Optique, Liaison Radio, Liaison Laser,...) : </para> - <ul> - <li> Réalisation des <b>câblages</b> en catégorie 5+, 6 et 7. </li> - <li> Câblage des centraux, <b>PABX</b> (centraux téléphoniques privés). </li> <li>Câblage d'armoire et d'équipement pour des systèmes très basse tension.</li> </ul> - <para> <et>eTransparence</et> sélectionne les équipements nécessaires au transport de l'information sur les supports physiques précités. Les informations peuvent être de type IP, téléphoniques, vidéos ou de commande. </para> <subtitle>Envie de prendre l'air ?</subtitle> <para>Maximisez votre mobilité grâce aux réseaux sans fil.</para> <img src="images/wireless.gif" alt="eTransparence Wireless" /> - <ul> - <li> Réalisation de <link type="external" href="http://www.lesite.net/wireless/wlintro.php3">WLAN</link> (Wireless Local Area Network). </li> <li>Vente de solutions Wireless.</li> <li>Sécurisation.</li> </ul> - <para> Exemple d'un réseau regroupant diverses technologies réseaux, réalisé par <et>eTransparence</et> : </para> <img src="images/mini_infratel.gif" href="images/infratel.gif" alt="Cliquez sur l'image miniature pour plus de détails..." /> <para>Le schéma ci-dessus regroupe trois sites reliés par des moyens "privés" WaveLan et Ligne Louée véhiculant le trafic voix et data (un seul canal par lequel toutes les informations circulent).</para> <para>Au niveau de la téléphonie, la téléphonie digitale est utilisée au sein d'un même site, la téléphonie sur IP est quant à elle utilisée pour relier les communications téléphoniques entre sites (il n'existe aucun coût de communication entre les sites).</para> <para>Internet et les communications téléphoniques sont joignables via le site 1 auquel sont connectés les autres sites.</para> </content> </page>
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:template match="/"> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="page" page-height="29.7cm" page-width="21cm" margin-top="1cm" margin-bottom="2cm" margin-left="2.5cm" margin-right="2.5cm"> <fo:region-before extent="3cm"/> <fo:region-body margin-top="3cm"/> </fo:simple-page-master> <fo:page-sequence-master master-name="all"> <fo:repeatable-page-master-alternatives> <fo:conditional-page-master-reference master-reference="page" page-position="first"/> </fo:repeatable-page-master-alternatives> </fo:page-sequence-master> </fo:layout-master-set> <fo:page-sequence master-reference="all"> <fo:flow flow-name="xsl-region-body"> <xsl:apply-templates/> </fo:flow> </fo:page-sequence> </fo:root> </xsl:template> <xsl:template match="title"> <fo:block font-size="36pt" text-align="center"><xsl:value-of select="."/></fo:block> </xsl:template> <xsl:template match="subtitle"> <fo:block font-size="20pt" space-before.optimum="12pt" text-align="left"><xsl:value-of select="."/></fo:block> </xsl:template> <xsl:template match="para"> <fo:block font-size="12pt" space-before.optimum="12pt" text-align="left"><xsl:apply-templates/></fo:block> </xsl:template> <xsl:template match="b"> <fo:inline font-weight="bold"><xsl:value-of select="."/></fo:inline> </xsl:template> <xsl:template match="et"> <fo:inline font-weight="bold" color="maroon"><xsl:value-of select="."/></fo:inline> </xsl:template> <xsl:template match="link[@type='external']"> <fo:basic-link text-decoration="underline" color="#213B58"> <xsl:attribute name="external-destination"> <xsl:value-of select="@href"/> </xsl:attribute> <xsl:value-of select="."/> </fo:basic-link> </xsl:template> <xsl:template match="img|ico"> <fo:external-graphic> <xsl:attribute name="src"> <xsl:value-of select="@src"/> </xsl:attribute> </fo:external-graphic> </xsl:template> </xsl:stylesheet>
Partager