[XML/XSL] Mise en page A4
Bonjours,
j'ai donc un xml comme suit:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<?xml version="1.0" encoding="utf-8"?>
<Listes>
<Liste>
<Categorie>
<Produit>
<Note></Note>
</Produit>
</Categorie>
</Liste>
</Listes> |
Lequel doit être imprimer en format A4, selon une certaine mise en page.
- Sur 3 colonne, remplissant colonne après colonne, puis page suivante.
- Sur 1 à n page, la taille étant dépendante du nombre de catégorie/produit/note
Pour illustrer les saut de colonne à realisé, j'ai fait une maquette xml/css (FICTIVE*) bien charger et en trichant un peut (beaucoup) pour le second (ajout de balise page/colonne) pour arriver au rendu* voulu.
/!\ *le rendu est ce que l'on voit en affichant le xml dans un navigateur et pas le code en lui même.(fait sur google chrome)
fichier: "origine.xml"
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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
| <?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="origine.css"?>
<Listes>
<Liste Lid="1">
1er liste
<Categorie xCid="1">
1er categegorie
<Produit Pid="1">
1er produit
<Note Nid="1">1er note</Note >
<Note Nid="2">2em note</Note >
<Note Nid="3">3em note</Note >
<Note Nid="4">4em note</Note >
<Note Nid="5">5em note</Note >
</Produit>
<Produit Pid="2">
2em produit
<Note Nid="2">2em note</Note >
<Note Nid="3">3em note</Note >
<Note Nid="4">4em note</Note >
<Note Nid="6">6em note</Note >
<Note Nid="8">8em note</Note >
</Produit>
<Produit Pid="4">
4em produit
<Note Nid="2">2em note</Note >
<Note Nid="3">3em note</Note >
<Note Nid="4">4em note</Note >
<Note Nid="5">5em note</Note >
<Note Nid="8">8em note</Note >
</Produit>
<Produit Pid="5">
5em produit
<Note Nid="2">2em note</Note >
<Note Nid="5">5em note</Note >
<Note Nid="6">6em note</Note >
<Note Nid="8">8em note</Note >
<Note Nid="9">9em note</Note >
</Produit>
<Produit Pid="6">
6em produit
<Note Nid="1">1er note</Note >
<Note Nid="3">3em note</Note >
<Note Nid="4">4em note</Note >
<Note Nid="5">5em note</Note >
<Note Nid="9">9em note</Note >
</Produit>
<Produit Pid="9">
9em produit
<Note Nid="1">1er note</Note >
<Note Nid="1">1em note</Note >
<Note Nid="1">1em note</Note >
<Note Nid="2">2em note</Note >
<Note Nid="6">6em note</Note >
</Produit>
</Categorie>
<Categorie Cid="2">
2em categegorie
<Produit Pid="1">
1er produit
<Note Nid="1">1er note</Note >
<Note Nid="2">2em note</Note >
<Note Nid="3">3em note</Note >
<Note Nid="4">4em note</Note >
<Note Nid="5">5em note</Note >
</Produit>
<Produit Pid="2">
2em produit
<Note Nid="2">2em note</Note >
<Note Nid="3">3em note</Note >
<Note Nid="4">4em note</Note >
<Note Nid="6">6em note</Note >
<Note Nid="8">8em note</Note >
</Produit>
<Produit Pid="4">
4em produit
<Note Nid="2">2em note</Note >
<Note Nid="3">3em note</Note >
<Note Nid="4">4em note</Note >
<Note Nid="5">5em note</Note >
<Note Nid="8">8em note</Note >
</Produit>
<Produit Pid="5">
5em produit
<Note Nid="2">2em note</Note >
<Note Nid="5">5em note</Note >
<Note Nid="6">6em note</Note >
<Note Nid="8">8em note</Note >
<Note Nid="9">9em note</Note >
</Produit>
<Produit Pid="6">
6em produit
<Note Nid="1">1er note</Note >
<Note Nid="3">3em note</Note >
<Note Nid="4">4em note</Note >
<Note Nid="5">5em note</Note >
<Note Nid="9">9em note</Note >
</Produit>
<Produit Pid="9">
9em produit
<Note Nid="1">1er note</Note >
<Note Nid="1">1em note</Note >
<Note Nid="1">1em note</Note >
<Note Nid="2">2em note</Note >
<Note Nid="6">6em note</Note >
</Produit>
</Categorie>
</Liste>
</Listes> |
fichier: "origine.css"
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
| <style type="text/css">
Listes{}
Liste
{
display: block;
width: 660px;
height: 975px;
font-size: 14pt ;
font-family: arial ;
font-weight: bold;
color: DimGray;
border-color: gray;
border-width: 1px;
border-style: solid;
background-color: Wheat;
}
Categorie
{
display: block;
float: left;
width: 32%;
font-size: 11pt ;
font-family: arial ;
padding: 2px;
padding-left: 5px;
margin: 2px;
margin-left: 5px;
background-color: BurlyWood;
}
Produit
{
display: block;
font-style: italic;
font-family: arial ;
font-size: 10pt;
padding: 2px;
padding-left: 10px;
margin: 2px;
margin-left: 10px;
background-color: Wheat;
}
Note
{
display: block;
font-style: italic;
font-family: arial ;
font-size: 10pt;
color: black ;
font-weight: italic;
padding: 2px;
padding-left: 10px;
margin: 2px;
margin-left: 10px;
background-color: Cornsilk;
}
</style> |
là, soit tout le bloc categorie glisse a gauche(float) peut importe la taille soit il reste en dessous(block)..... bref pas bien....
je souhaite arrivé a quelque chose comme ca* (la je triche en ajoutant des balise et en coupant la categorie dans mon xml)
/!\ *toujours ce que l'on voit en affichant le xml dans un navigateur et pas le code en lui même.(fait sur google chrome)
fichier: "sortie.xml"
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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="sortie.css"?>
<Listes>
<Liste Lid="1">
1er liste
<page id="1">
<coln>
<Categorie Cid="1">
1er categegorie
<Produit Pid="1">
1er produit
<Note Nid="1">1er note</Note>
<Note Nid="2">2em note</Note>
<Note Nid="3">3em note</Note>
<Note Nid="4">4em note</Note>
<Note Nid="5">5em note</Note>
</Produit>
<Produit Pid="2">
2em produit
<Note Nid="2">2em note</Note>
<Note Nid="3">3em note</Note>
<Note Nid="4">4em note</Note>
<Note Nid="6">6em note</Note>
<Note Nid="8">8em note</Note>
</Produit>
<Produit Pid="4">
4em produit
<Note Nid="2">2em note</Note>
<Note Nid="3">3em note</Note>
<Note Nid="4">4em note</Note>
<Note Nid="5">5em note</Note>
<Note Nid="8">8em note</Note>
</Produit>
<Produit Pid="5">
5em produit
<Note Nid="2">2em note</Note>
<Note Nid="5">5em note</Note>
<Note Nid="6">6em note</Note>
<Note Nid="8">8em note</Note>
<Note Nid="9">9em note</Note>
</Produit>
<Produit Pid="6">
6em produit
<Note Nid="1">1er note</Note>
<Note Nid="3">3em note</Note>
<Note Nid="4">4em note</Note>
<Note Nid="5">5em note</Note>
<Note Nid="9">9em note</Note>
</Produit>
<Produit Pid="9">
9em produit
<Note Nid="1">1er note</Note>
<Note Nid="1">1em note</Note>
<Note Nid="1">1em note</Note>
<Note Nid="2">2em note</Note>
<Note Nid="6">6em note</Note>
</Produit>
</Categorie>
<Categorie Cid="2">
2em categegorie
<Produit Pid="1">
1er produit
<Note Nid="1">1er note</Note>
<Note Nid="2">2em note</Note>
</Produit>
</Categorie>
</coln>
<coln>
<Categorie Cid="2">
2em categegorie
<Produit Pid="1">
1er produit
<Note Nid="3">3em note</Note>
<Note Nid="4">4em note</Note>
<Note Nid="5">5em note</Note>
</Produit>
<Produit Pid="2">
2em produit
<Note Nid="2">2em note</Note>
<Note Nid="3">3em note</Note>
<Note Nid="4">4em note</Note>
<Note Nid="6">6em note</Note>
<Note Nid="8">8em note</Note>
</Produit>
<Produit Pid="4">
4em produit
<Note Nid="2">2em note</Note>
<Note Nid="3">3em note</Note>
<Note Nid="4">4em note</Note>
<Note Nid="5">5em note</Note>
<Note Nid="8">8em note</Note>
</Produit>
<Produit Pid="5">
5em produit
<Note Nid="2">2em note</Note>
<Note Nid="5">5em note</Note>
<Note Nid="6">6em note</Note>
<Note Nid="8">8em note</Note>
<Note Nid="9">9em note</Note>
</Produit>
<Produit Pid="6">
6em produit
<Note Nid="1">1er note</Note>
<Note Nid="3">3em note</Note>
<Note Nid="4">4em note</Note>
<Note Nid="5">5em note</Note>
<Note Nid="9">9em note</Note>
</Produit>
<Produit Pid="9">
9em produit
<Note Nid="1">1er note</Note>
<Note Nid="1">1em note</Note>
<Note Nid="1">1em note</Note>
<Note Nid="2">2em note</Note>
<Note Nid="6">6em note</Note>
</Produit>
</Categorie>
</coln>
<coln>
</coln>
</page>
</Liste>
</Listes> |
fichier: "sortie.css"
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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| <style type="text/css">
Listes{}
Liste
{
display: block;
width: 660px;
height: 975px;
font-size: 14pt ;
font-family: arial;
font-weight: bold;
color: DimGray;
border-color: gray;
border-width: 1px;
border-style: solid;
background-color: Wheat;
}
page
{
display: block;
width: 650px;
height: 940px;
padding: 1px;
margin: 1px;
background-color: Cornsilk;
}
coln
{
display: block;
float: left;
width: 32%;
height: 100%;
font-size: 11pt;
font-family: arial;
padding: 2px;
margin: 2px;
background-color: gray;
}
Categorie
{
display: block;
font-size: 11pt;
font-family: arial;
padding: 2px;
padding-left: 5px;
margin: 2px;
margin-left: 5px;
background-color: BurlyWood;
}
Produit
{
display: block;
font-style: italic;
font-family: arial;
font-size: 10pt;
padding: 2px;
padding-left: 10px;
margin: 2px;
margin-left: 10px;
background-color: Wheat;
}
Note
{
display: block;
font-style: italic;
font-family: arial;
font-size: 10pt;
color: black;
font-weight: italic;
padding: 2px;
padding-left: 10px;
margin: 2px;
margin-left: 10px;
background-color: Cornsilk;
}
</style> |
La on voit bien la reprise de [catégorie/produit] après le saut de colonne...
Vue le travail à réalisé (et n'ayant jamais touché xsl)
-gestion colonne
-gestion page A4
sachant que cela ce fera via une application en C#
quel est la solution la plus simple a mettre en oeuvre et quel sont les prérequis pour ce faire.
PS: pour xsl, merci de laisser des liens car je trouve que de la doc pour html...
mais c'est le désert pour les formats imprimables A4