xml-xsl-fo : probleme d'affichage d'un tableau
Bonjour,
je cherche à créer un document pdf à partir d'un document xml et d'un document xsl(en utilisant fop).
dans ce doc pdf, je veux créer un tableau avec des données dynamiques.
ma question est:
1) j'aimerais avoir le tableau affiché en "paysage" et non en "portrait" dans ma page.
2) j'aimerais que les libellés des colonnes du tableau soient affichés à la verticale
et non à l'horizontale pour un gain de place en largeur, vu que le nombre de colonnes pourra
varier dynamiquement(données venant de la base, mais pouvant être modifiées dans l'appli):
===> pas TITRE
mais
T
I
T
R
E
merci d'avance
Clindoeil
ci-joint mon doc xsl:
Code:
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
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
<xsl:template match="statistique">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="portrait" page-height="29.7cm" page-width="21cm" margin-top="2.5cm" margin-bottom="1cm" margin-left="0.5cm" margin-right="0.5cm">
<fo:region-body margin-top="0cm" margin-bottom="2.5cm"/>
<fo:region-before extent="0cm"/>
<fo:region-after extent="1.5cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="portrait">
<fo:static-content flow-name="xsl-region-after">
<fo:block text-align="start" font-size="8pt" font-family="sans-serif">
blabla
</fo:block>
<fo:block text-align="end" font-size="8pt" font-family="sans-serif">
Page (
<fo:page-number/>
)
</fo:block>
</fo:static-content>
<fo:flow flow-name="xsl-region-body">
<fo:block text-align="center" space-after.optimum="15pt">
<fo:external-graphic src="file:c:/blabla.gif"/>
</fo:block>
<fo:block font-size="24pt" font-family="sans-serif" line-height="24pt" space-after.optimum="15pt" background-color="white" color="rgb(41,74,140)" text-align="center" padding-top="3pt">
blabla
</fo:block>
<xsl:apply-templates select="tableau"/>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<xsl:template match="tableau">
<fo:table table-layout="fixed" border-collapse="separate">
<xsl:for-each select="enteteTableau/entete">
<fo:table-column column-width="1.8cm"/>
</xsl:for-each>
<fo:table-header>
<fo:table-row>
<xsl:for-each select="enteteTableau/entete">
<fo:table-cell border-width="0.1mm" border-style="solid" background-color="rgb(229,255,229)">
<fo:block text-align="center"><xsl:value-of select="."/></fo:block>
</fo:table-cell>
</xsl:for-each>
</fo:table-row>
</fo:table-header>
<fo:table-body>
<xsl:apply-templates/>
</fo:table-body>
</fo:table>
</xsl:template>
<xsl:template match="statistiqueTypeAnomalie">
<fo:table-row>
etc...
</fo:table-row>
</xsl:template>
</xsl:stylesheet> |
merci phil: encore une question..
salut Phil,
tout d'abord merci d'avoir repondu!
j'avais effectivement trouvé sur le net
- pour le format paysage, la propriété "reference-orientation" (la mettre à -90).
- pour les libellés verticaux, la propriété "writing-mode"
et j'avais essayé de les tester, sans succes. je comprends mieux pourquoi cela ne marchait pas, depuis qu tu m'as dit
que ces propriétés n'etaient pas gérées par FOP. Mais avec quoi sont elles gérées alors?..
merci encore