Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Julien Chable

He blogs, you blog, I blog ...

Archives

Après le TC 45 pour Open XML, le TC 46 pour XPS

Je m'y attendais depuis assez longtemps, mais dans le contexte actuelle de la normalisation ISO DIS 29500 de Open XML, je n'aurais pas cru que cela arriverait aussi tôt (à comprendre pas avant le résultat des votes des membres P à l'ISO). L'ECMA et Microsoft - qui fournit les bases et le périmètre de ce projet de standard - ont donc décider de lancer ce projet de standardisation sous la houlette du comité TC 46 qui sera en charge de l'élaboration du futur standard.

Retrouvez l'annonce du comité technique 46 en charge de la standardisation du format de rendu XPS à cette adresse : http://www.ecma-international.org/memento/TC46.htm

Pour mieux comprendre ce format, ce post propose une "légère analyse" (à ne pas confondre avec une "analyse légère" !) de la version existante du format XPS.

XPS késako : Open Packaging Convention + XAML ???

Le format XPS (XML Paper Specification) est, tout en restant assez réducteur, un format garantissant le rendu des documents à l'affichage mais aussi et surtout à l'impression.

On parlait beaucoup du Windows Flip 3D et autres raffinements - quelquefois presque inutiles - dans un si grand OS qu'est Windows Vista. Cependant peu de personnes ont aborder le sujet du format XPS et du sous système d'impression (on ne blamera pas ces personnes de ne pas avoir aborder un sujet aussi passionnant :p).

Alors que le nouveau sous système graphique de Vista utilisant WPF (Windows Presentation Foundation) est enfin venu remplacer le GDI, le sous système d'impression a aussi évolué et est s'est vu lui aussi basé sur WPF. Au passage, l'impression y gagne une meilleure gestion des couleurs et un meilleur support des effets de transparence et de gradient. Comme on le comprendra aisément, le format qui lie le rendu - avec notamment WPF - et le système d'impression est ... XPS !

Le format XPS utilise le langage XAML de WPF - du XML donc - pour décrire intégralement la représentation (disposition, couleur, effets, ...) et la pagination d'un document électronique. Cela signifie que XPS peut servir de langage de description pour les imprimantes (PDL - Page Description Language), c'est à dire fournir un langage de description de documents imprimables unique qui permet d'éliminer les conversions intermédiaires entre le sous système d'impression et le langage spécifique à votre imprimante !

Cela a pour effet d'améliorer de façon significative la fidélité et la fiabilité du rendu, puisque ce que vous voyez à l'écran, via une visionneuse XPS par exemple, sera ce que l'imprimante sortira, le format de description restant le même de bout en bout.

Notez également qu'un document XPS est empaqueter selon l'Open Packaging Convention - structure ZIP + XML décrite dans la partie 2 de Open XML - qui est un point sur lequel nous reviendrons.

Les imprimantes du marché

Comme vous pouvez l'imaginer, cet appel à standardisation est également un appel aux fabricants d'imprimantes de supporter, mais aussi et surtout d'aider à l'élaboration via le TC 46, le format XPS. Quelques constructeurs sont déjà intéressés et nous devrions en savoir plus sur leur support dans les mois à venir.

MAJ : à noter que Vista supporte natuellement et bien évidemment les anciennes imprimantes ... il n'y a aucune confusion à avoir sur le sujet ;-)

Un article (l'Article du moment) sur le sujet

Un EXCELLENT article sur XPS issu de MSDN Magazine (et traduit en Français), vous expliquera cela bien mieux que ce court post, vous le trouverez à cette adresse : http://www.microsoft.com/france/msdn/windowsvista/XMLPaperSpecification.mspx

Et maintenant ?

Voici l'agenda du travail pour le futur comité TC 46 de l'ECMA en charge de l'élaboration du futur standard XPS :

    1. Produce a formal standard for an XML-based electronic paper format and XML-based page description language which is consistent with existing implementations of the format called the XML Paper Specification, including:

      • Produce a fully documented and unambiguous standard for an XML-based electronic paper format and page description language.
      • Produce appropriate W3C XML Schemas to enable automatic verification of files written to the standard.
      • Enable interoperability between existing industry implementations of applications, devices, tools and platforms.
    2. Assume responsibility for the ongoing maintenance and evolution of this Ecma International standard.
    3. Support backwards compatibility with implementations targeted to prior versions of the standard.
    4. Evaluate and consider proposal for complementary or related additional technologies.
    5. Establish and maintain liaison with other Ecma TCs and with other Standards Setting Organizations (SSOs) as appropriate to facilitate and promulgate the work of the TC.
    6. Evaluate and consider contributing the Ecma standard to an ISO and/or IEC TC for approval and adoption.

Parmi les objectifs dégagés, on retrouve certains points que les opposants d'Open XML avaient malin plaisir à pointer du doigt, néanmoins les réponses de l'ECMA ont apportées un éclaircissement sur ces points. Mieux vaut prévenir que guérir !

Et PDF dans tout ça ???

On ne pouvait pas parler de XPS, de ses intérêts et de ses qualités sans se poser la question d'un format déjà existant (même s'il ne répond pas forcément à tous les besoins du marché et aux fonctionnalités du nouveau format proposé).

Aujourd'hui évidemment on peut pas passer à côté de la similitude du format XPS intégré en natif dans Windows Vista sans avoir une pensée pour le très populaire et très utilisé format PDF. Même si finalement, et la lecture de l'article devrait vous en convaincre (sans mauvaise foi ou partie prise aucune, comme on en rencontre beaucoup avec le format Open XML), le format XPS va au delà tout en ne répondant pas tout à fait aux mêmes besoins, problématiques et fonctionnalités que le format PDF.

Le format XPS est plus une amélioration de la fidélité et des capacités d'impression de Vista que la création d'un format concurrent au PDF. L'association de XPS à PDF représente plus un dommage collatéral, ou effet de bord pour être plus positif, au but réel de XML Paper Specification. Cependant, il devient difficile avec les efforts de Microsoft à fournir des outils simples et intégrés dans Vista (support par défaut dans Internet Explorer 7), de voir si finalement le format XPS est porter ou non en concurrent du PDF.

Le format XPS et les développeurs

On ne peut pas parler d'un nouveau format sans également parler des outils mises à la disposition des "artisants", c'est à dire des développeurs, afin de créer des solutions autour de celui-ci. Et bien que le format soit à peine arriver à l'ECMA, les outils et les possibilités qui sont offertes aux développeurs sont déjà nombreuses.

Néanmoins, je mettrais un bémol en disant que tous les outils existants actuellement - sans y inclure le projet OpenXML4J abordé plus loin - utilisent le format dans sa version 1.0 tel que définie dans les spécifications se trouvant sur le site de Microsoft ; cela nous amène à nous poser la question de savoir si le prochain standard et les outils seront compatibles avec cette version !!

Parmi ces outils on trouve :

  • Le pack essentiel XPS pour lequel j'avais déjà fait réalisé un post (nécessite Core XML Services 6),
  • La visionneuse déjà inclut dans Windows Vista,
  • Les API .NET avec .NET 3,
  • La possibilité de manipuler des documents avec Java (projet OpenXML4J sur lequel je reviendrais).

La plateforme .NET

Pour la plateforme .NET, les API concernant XPS sont déjà présentes pour générer et visionner des documents XPS (IE 6 et 7) avec le framework .NET 3. Par exemple, il est relativement simple de charger un document XPS dans une application XAML, et cela se comprend très bien par le simple fait que la disposition et le contenu d'un document XPS sont décrits en XAML.

On pourra aussi se poser la question de savoir si les APIs inclusent dans .NET 3 et Vista seront mise à jour avec les éventuelles évolutions ou modifications du format suite aux travaux du TC 46 ...

La plateforme Java

Concernant la plateforme Java, il existe pour le moment que très peu d'outils à ma connaissance mais cela ne signifie pas que l'on ne peut rien faire pour le moment, bien au contraire !

Diapositive de la table ronde du 26/06/07 sur Open XML et OpenXML4J :

Comme je l'avais rapidement exposé plus haut, un document XPS est un document qui suit les directives de structuration Open Packaging Convention qui est implémenté dans le projet OpenXML4J dont Wygwam a lancé le développement récemment. De ce fait et comme le montre l'exemple ci dessous, l'exploration d'un document XPS est déjà facilité par l'existence même de cette brique (en attendant une prochaine étape dans le projet ???).

Package pkg = Package.open("sample.xps", PackageAccess.READ_WRITE);
PackageRelationship coreDocumentRelationship = pkg
.getRelationshipsByType("http://schemas.microsoft.com/xps/2005/06/fixedrepresentation")
.getRelationship(0);
PackagePart payloadPart = pkg.getPart(coreDocumentRelationship);

// Chargement et extraction des informations du payload
InputStream inStream = coreDocumentPart.getInputStream();
SAXReader docReader = new SAXReader();
Document doc = docReader.read(inStream);

... // Extraction des différents éléments de la structure XPS, modification ou génération du contenu des parties etc

// Sauvegarde du document XPS
pkg.close();

OpenXML4J dans tout ça :p

En tant que fondateur et project leader du projet open source OpenXML4J - qui tend à apporter aux développeurs Java une API pour développer autour du format Open XML - je me devais de faire un petit commentaire sur le projet et surtout sur son utilisation avec le format XPS.

Si pour le moment le périmètre du projet OpenXML4J est suffisamment large pour nous approvisionner en tâches pendant les mois et années à venir, il n'est pour le moment pas prévu de créer une extension pour supporter la couche haute du format XPS.

Cependant, nous restons très ouvert (cela devrait faire l'objet d'une annonce sur le site officiel du projet très prochainement) sur l'intégration d'un sous projet, voire de l'incorporation au même niveau que les documents Open XML, permettant de manipuler les documents XPS nativement en Java à partir des briques de bases de OpenXML4J (notamment l'implémentation de Open Packaging Conventions du projet).

Les autres ressources

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: dimanche 1 juillet 2007 16:23 par neodante

Commentaires

vodevil a dit :

Salut je voudrais savoir si il existe des convertisseur PDF vers XPS je peut biensur utiliser l'imprimante virtuel de document XPS mais, cela ne conserve pas la structure de mes document PDF, chapitre, liens interne au document etc...

merci :)

# juillet 1, 2007 18:19

neodante a dit :

Pas à ma connaissance, et sincèrement je ne pense pas qu'une telle conversion envisageable pour tout un tas de raison technique ... voire même 'politique' ;-)

# juillet 1, 2007 20:09

vodevil a dit :

Humm ok, je vais tenter de coder sa moi meme

# juillet 2, 2007 00:46

FREMYCOMPANY a dit :

Essaie http://media-convert.com/, peut-être auront-il le convertisseur que tu cherches...

# juillet 2, 2007 14:51
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01