Je me pose une question et je pense que vous pourrez m'aider.

J'ai fais un fichier XML avec une DTD, et j'ai fait une feuille de style XSLT-T pour transformer mon fichier XML en HTML, j'ai aussi fait une feuille de style XSLT-FO pour transformer mon fichier XML en PDF.
Je me suis arrangé pour que le rendu HTML et le rendu PDF soit à peu pres pareil !! (par choix !). Seulement si je modifie mon fichier XSL-T alors le rendu HTML ne sera plus identique au rendu PDF !

J'aimerai savoir si il était possible de faire une autre feuille de style XSL-T qui utiliserait ma 1ère feuille de style XSL-T pour la transformer en XSL-FO et me premette ainsi d'avoir un même rendu HTML et PDF ??

Sinon comment faire pour avoir un résultat papier sensiblement identique au format HTML ??

merci de m'aider Smiley biggrin

Poich
Si si.

Il faut que tu organises l'architecture de ton process à 3 niveaux :
1/ XML source (les contenus)
2/ XSL-FO ce sera ton format pivot (contenus + présentation)
3/ format de sortie (PDF, SVG, HTML...)

Pour passer de 1/ à 2/ tu as une feuille XSLT. En modifiant cette feuille XSLT tu modifies le style de la présentation pour l'ensemble des formats de sortie.

Pour passer de 2/ à 3/ tu utilises un ou des outils de rendu. FOP par exemple est un outil qui autorise bon nombre de formats de sortie à partir de XSL-FO : PDF, SVG, bientôt RTF... Malheureusement FOP ne sort pas de HTML, mais il existe d'autres outils, par exemple : http://www.renderx.com/fo2html.html.
si ton XSL-FO n'est pas trop complexe alors ça devrait marcher. Comme XSL-FO est plus riche que HTML, il se peut néanmoins qu'il te soit nécessaire d'introduire des simplifications de présentation, et que ces choix te reviennent au travers de la réalisation de ton propre outil (XSLT).

Cette architecture doit théoriquement simplifier ton travail puisque normalement tu ne dois gérer que le XSLT pour passer de 1/ à 2/. C'est à cet endroit que tu maîtrises ta présentation sans te préoccuper des supports finaux utilisés pour le rendu.

En réalité XSL-FO a été conçu pour résoudre une classe de problèmes dont ton besoin fait très exactement partie : il s'agit de factoriser contenu+présentation avant le rendu. C'est cette dernière étape de rendu qui est la plus complexe au sens ou elle s'adresse à une multiplicité de supports possibles pas nécessaire connus à l'avance, et évolutif dans le temps. C'est pour gérer la multiplicité, et l'éventuelle méconnaissance a priori qu'il a été intéressant de rendre possible cette factorisation au travers de XSL-FO.
Ce second post, pour une autre solution qui convient dans ton cas, mais qui ne correspond pas à la meilleure architecture. Je ne recommande pas cette solution, même si elle est certainement plus simple pour ce qui te concerne. Il faut introduire 4 niveaux :
1/ XML source (les contenus)
2/ HTML ce sera ton format pivot (contenu+présentation)
3/ XSL-FO simple conversion du HTML
4/ format de sortie PDF

la maîtrise de la présentation se fait par XSLT entre 1/ et 2/, et tu l'as déjà fait si j'ai bien compris.
le passage de 2/ à 3/ marche forcement puisque XSL-FO est plus élaboré. Il existe plusieurs outils (par exemple :http://html2fo.sourceforge.net/)
Puis 3/ à 4/ avec FOP.

Donc si tu as déjà 1/ vers 2/, tu n'as plus rien à développer. Et surtout il ne faut pas doubler 1/ vers 2/ d'une autre transformation XSLT du type 1/ vers XSL-FO, sinon tu as 2 transformations à maintenir.
oki je te remercie pour tes explications et je vais opter pour la 2ème solution Smiley murf !!

Je sais que c'est pas la mieux mais ça me parait plus adapter à ce que je veux faire !

thx

++

Poich