cfdocumentL'équipe en charge de ColdFusion MX 7 souhaitait répondre aux souhaits des développeurs et leur permettre de profiter encore mieux de ColdFusion. Un commentaire que nous avions entendu fréquemment portait sur la difficulté de créer des documents portables à partir de pages web. Nous nous sommes donc dit qu'il serait intéressant de pouvoir permettre aux développeurs d'ajouter un bouton dans n'importe quelle page web pour convertir les contenus HTML en documents PDF ou FlashPaper imprimables.
Nous avons immédiatement pensé à une balise ColdFusion capable de « digérer » des contenus HTML pour les convertir en documents dynamiques. La conférence MAX 2003 de l'année dernière a été l'occasion de présenter un aperçu de cette idée. La réponse des participants était claire : il nous fallait inclure cette fonction dans ColdFusion 7.
L'équipe de développement a dû faire face à quelques difficultés au cours de la conception et de l'implémentation. La première est sans doute que le langage HTML est un langage très laxe. Les navigateurs modernes ne s'inquiètent pas trop d'une syntaxe HTML mal rédigée. Le problème est que cela rend plus difficile l'analyse des données et la conversion dans un « langage » spécifique au format PDF/FlashPaper. Quelques recherches nous ont permis de découvrir que d'autres produits essaient de répondre à ce problème. Cependant, la plupart d'entre eux obligent à une procédure d'installation supplémentaire, telle qu'une solution C++/native ne fonctionnant pas correctement avec la plate-forme, ou à l'ajout d'un module supplémentaire avec ColdFusion.
Une technologie que nous avons presque adoptée est Apache FOP*, qui convertit XML au format PDF en se basant sur le masquage XSL (feuilles de styles). Le principal avantage de FOP est qu'il est déployé sur Java, la technologie sur laquelle ColdFusion MX est basé. Cependant, l'équipe ColdFusion a conclu que le moteur Apache FOP ne consomme que du contenu XML analysé. Il applique la feuille de styles XSL pour les informations de mise en page avant la conversion au format PDF. L'adoption de FOP aurait obligé les développeurs ColdFusion à modifier leur code HTML en XHTML, ce qui aurait rendu plus difficile l'utilisation de cette fonction. Il n'en était donc pas question. Nous avons également examiné l'idée de produire automatiquement du code XHTML à partir du code HTML, un résultat qui entraînait malheureusement trop d'erreurs et d'autres problèmes.
Nous nous sommes donc repliés sur notre propre solution, une solution qui nous permettait de consommer du code HTML 4.01 normal et CSS 1 et 2 sans obliger le développeur à modifier son code. Cette solution améliore l'expérience, augmente l'intérêt de cette fonction et nous permet d'atteindre nos objectifs premiers.