Plate-forme XPS
Auteur : Alain Zanchetta, MCS, Microsoft France
Octobre 2006 - Cet article est paru dans le magazine Programmez!
Téléchargez le code source associé à cet article.
Le besoin d’un nouveau format de documents
Même si aujourd’hui les ordinateurs sous Windows peuvent servir à toutes sortes de tâches (surfer sur Internet, jouer, retoucher ses photos), une grande partie du succès de Windows est liée à la production de documents avec des traitements de texte, des tableurs ou des logiciels de dessin. Malheureusement, les échanges de tels documents entraînent toujours des difficultés : le destinataire doit la plupart du temps posséder l’application ayant produit le document pour le visualiser et l’imprimer (les viewers existent pour Microsoft Office mais ne sont pas généralisés) et ces opérations souffrent souvent d’un manque de fidélité, typiquement à cause d’une police manquante ou d’une mise en page remise en question par l’imprimante cible.
Par ailleurs, les mécanismes comme la signature électronique des documents (pour garantir leur provenance ou marquer leur validation par un responsable) ou l’ajout de méta-données sont quant à eux totalement dépendants des applications ayant produit ces documents.
Enfin, tous les formats électroniques échangés actuellement sont souvent difficiles à manipuler pour les développeurs qui doivent piloter les applications bureautiques existantes ou enchaîner des outils plus ou moins intégrés pour les générer.
La proposition Microsoft
Microsoft profite de l’arrivée prochaine de Vista pour proposer un ensemble de technologies permettant la manipulation de documents électroniques et leur restitution fidèle, indépendante de la présence de l’application créatrice. Le cœur de cette approche est un nouveau format de document, appelé XPS pour XML Paper Specifications, mais cette plate-forme se veut plus large qu’un simple format de documents.
Puisque le but est de pouvoir manipuler et échanger des documents, le format XPS est ouvert : d’une part, Microsoft garantit une licence gratuite à la fois aux utilisateurs et aux développeurs d’applications, et d’autre part, le format XPS est basé sur des technologies standards comme XML et le format ZIP, ce qui va faciliter les développements autour de XPS, à la fois par des partenaires Microsoft comme les fabricants de scanners ou d’imprimantes et les éditeurs de logiciels, mais aussi par les entreprises au sein de leurs propres applications.
Vista sera la plate-forme idéale de création et de manipulation des fichiers XPS car cette version de Windows incorporera en standard tous les composants nécessaires. En particulier, Vista apportera un « chemin d’impression » (« Print Path ») pour les documents XPS limitant les conversions de format dans les différentes étapes de la chaîne d’impression (en particulier lorsque les pilotes d’imprimantes comprenant le XPS seront disponibles), ce qui améliorera à la fois les performances et le rendu des impressions.
Cependant, le format XPS étant ouvert et basé sur des standards, les documents XPS pourront être créés, lus et imprimés sur n’importe quelle plate-forme. Microsoft fournira un certain nombre d’outils de manipulation du XPS pour Windows XP, Windows Server 2003 ainsi que Windows 2000.
XPS pour l’utilisateur final
Création d’un document XPS
La création d’un document XPS peut se faire de différentes manières selon les applications utilisées et la version de Windows :
- Certaines applications comme Microsoft Office 12 vont offrir nativement une sauvegarde des fichiers au format XPS. C’est ainsi qu’on aura à la fois le meilleur contrôle du rendu final du document et la meilleure intégration en termes d’ergonomie des fonctions comme la signature électronique du document au sein même de l’application.
Remarque : Les applications basées sur Windows Presentation Foundation (WPF) ont une tâche assez aisée ici car XPS et WPF partagent un grand nombre de composants liés à la présentation : graphiques vectoriels, gestion des polices et des images, etc. - Disponible à travers .NET 3.0 (auparavant appelé WinFx) sous Windows Vista, Windows XP et Window Server 2003, le « Microsoft XPS Document Writer » est une imprimante virtuelle qui permet la génération de documents XPS à partir de n’importe quelle application sachant imprimer.
- Des fabricants de scanners envisagent la génération de documents XPS par leurs matériels.
Visualisation et impression d’un document XPS
Outre les applications sachant nativement manipuler le XPS, plusieurs viewers XPS seront disponibles :
- NET 3.0 intègre le « XPS Document Viewer ». Ce viewer permet non seulement la visualisation des documents XPS mais aussi l’attribution de permissions et la gestion des signatures électroniques. Lorsqu’on ouvre un document XPS à partir du shell de Windows, ce viewer est lancé à l’intérieur d’Internet Explorer (versions 6 ou 7) ; il peut aussi être hébergé dans une application WPF.
- Le XPS Essentials Pack contient un viewer autonome et léger : bien qu’il soit capable d’ouvrir un document protégé, il ne permet pas d’en modifier les droits d’accès ni d’apposer une signature électronique. Le principal intérêt de ce viewer allégé est qu’il peut fonctionner sous Windows 2000.
A partir de ces viewers, il est possible de lancer l’impression du document XPS visualisé. Le système d’impression de Windows Vista supporte nativement les documents XPS, ce qui permet un rendu plus fidèle (par exemple au niveau des couleurs) et une impression accélérée. Sur les autres plates-formes, une interprétation du XPS sera vraisemblablement nécessaire.
Sécurité
Une préoccupation majeure des utilisateurs actuellement est la sécurité de leur environnement informatique. Le format XPS a été pensé dès le départ pour assurer une sécurité maximale :
- PS est un format de document imprimé: il décrit le rendu final du document et ne contient aucune notion d’interactivité (donc pas de macros, pas de code).
- Le XPS Document Viewer s’exécute dans un environnement sécurité (c’est-à-dire qu’Internet Explorer en limite explicitement les possibilités) et s’arrête lorsqu’il rencontre une balise XML inconnue.
- Les signatures numériques permettent de garantir qu’un document n’a pas été modifié depuis son émission par le signataire.
XPS pour le développeur
Le format XPS
Comme il a été dit précédemment, le format XPS est basé sur les formats XML et ZIP. Pour être plus précis, XPS est basé sur une spécification Microsoft appelée Open Packaging Conventions (OPC) ; cette spécification décrit comment incorporer dans un fichier unique les différentes parties d’un document, leurs relations, et les méta-données associées, le tout en appliquant éventuellement des signatures numériques. Comme XPS, cette spécification est ouverte : elle est utilisée à la fois par XPS et par Office 12 mais peut aussi servir à d’autres formats de fichiers.
La structure d’un fichier XPS peut être visualisée en ouvrant un document XPS à l’aide de Winzip (ou de l’explorateur Windows après renommage du fichier). L’arborescence représente essentiellement les documents (il est possible d’incorporer plusieurs documents dans un seul fichier XPS), leurs pages ainsi que les ressources partagées ; ces ressources sont typiquement les images et les polices du document (l’incorporation des polices de caractères garantit la restitution fidèle du document sur n’importe quel PC).
Si le fichier est signé numériquement, de nouveaux composants sont ajoutés dans le fichier conteneur. Les signatures des fichiers XPS sont basées sur la signature des fichiers XML et les certificats x.509.
Si le fichier est protégé par RMS, le .ZIP est encrypté et incorporé dans un fichier au format de stockage structuré OLE (comme tous les fichiers protégés par RMS).
Les APIs
La publication des spécifications XPS et OPC permet le développement d’outils manipulant les fichiers XPS dans n’importe quel environnement de développement. Cependant, le .NET Framework 3.0 contient un certain nombre de classes facilitant la manipulation de ces fichiers :
- System.IO.Packaging permet de manipuler les documents respectant OPC,
- System.Windows.XPS permet quant à lui de manipuler spécifiquement les documents XPS.
En s’appuyant uniquement sur le niveau OPC, il est possible de développer des outils plus génériques, capables de manipuler aussi bien les documents XPS que les documents Office 12 ou d’éventuels autres documents basés sur cette spécification, c’est typiquement le cas des applications de Workflows documentaires (publication et validation de documents, avec incorporation et vérification des signatures numériques).
La création d’un document se fera quant à elle à l’aide des classes du niveau XPS car elles vont permettre de descendre au niveau du contenu du document, typiquement de lui ajouter des pages.
(possibilité incorporer le source fourni en pièce jointe)
Conclusion
Avec XPS, ses spécifications publiques et un certain nombre d’outils de base associés, Microsoft propose une plate-forme de production et de manipulation de documents numériques à la fois moderne et ouverte allant au-delà d’un simple format de fichiers supplémentaire. La balle est maintenant dans le camp des développeurs car ce seront eux qui assureront ou non le succès d’XPS ; il est en tout cas certain que pour les développeurs .NET, la production de documents finalisés (devis, contrats, etc.) n’aura jamais été aussi facile.
Alain Zanchetta
Microsoft France
Encadré 1 : XPS est-il un concurrent à PDF ?
Avec l’arrivée de XPS, il est inévitable de se poser la question de son positionnement par rapport au standard de fait du marché, c’est-à-dire Adobe PDF. Il est effectivement clair qu’il y aura une concurrence entre ces deux formats dans un certain nombre de segments ; pour autant, effectuer une comparaison point à point des deux formats de fichiers serait manquer l’essentiel de l’approche Microsoft.
L’objectif est bien de proposer une plate-forme complète de manipulation de ces documents et non un simple format de fichiers :
L’intégration de XPS dans le système d’impression ainsi que le support de ce format par des scanners et des imprimantes va améliorer la fidélité du rendu des documents XPS.
L’ouverture du format (spécifications, licence, utilisation de XML et ZIP comme base, fourniture d’APIs) va favoriser le développement de solutions de production de documents complètes, non pas uniquement par Microsoft (dont les applications vont bien évidemment savoir exploiter cette nouvelle plate-forme) mais aussi par ses partenaires et ses clients.
Encadré 2 : XPS Aujourd’hui
A la date de rédaction de cet article (août 2006), XPS et les outils associés ne sont pas encore finalisés ; cependant, la plupart des composants existent dans des versions suffisamment stables pour pouvoir être utilisées et évaluées :
Spécifications XPS – Version 0.9 (mai 2006)
http://www.microsoft.com/whdc/xps/xpsspec.mspx
Spécifications OPC – Version 0.85 (mars 2006)
http://www.microsoft.com/whdc/xps/xpspkg.mspx
.NET Framework 3.0 – CTP Juillet 2006
Contient APIs, XPS Document Viewer et XPS Document Writer (s’installe sur Windows XP et Windows Vista)
Page de téléchargement :
http://www.microsoft.com/downloads/details.aspx?FamilyId=62057A6F-185F-41DB-ABE5-678F6FC388F0&displaylang=en
Lien direct sur package complet :
http://download.microsoft.com/download/2/9/1/2913AB67-3D66-4526-B70C-E04F8562B9C8/dotnetfx3.exe
Microsoft XML Paper Specification Essentials Pack Version 1.0 – Beta 1
Permet entre autres la visualization de fichiers XPS sous Windows 2000
http://www.microsoft.com/downloads/details.aspx?familyid=4A7B8983-7BE1-4740-BC9C-D377A8F2D6EB&displaylang=en
Et il est bien évidemment possible d’installer les versions beta d’Office 12 ou de Windows Vista.