L'impression est l'une des opérations les plus courantes que nous réalisons avec nos PC, alors qu'en même temps, nous lisons et utilisons de plus en plus de ressources en ligne. Nous avons décidé de simplifier et d'optimiser cette opération courante, en collaborant avec des partenaires de tout l'écosystème pour intégrer ces améliorations à Windows 8.  Ce billet de blog a été rédigé par Adrian Lannin, chef de projet au sein de l'équipe chargé de l'impression. 

--Steven


Les imprimantes figurent parmi les périphériques les plus fréquemment connectés aux PC Windows et elles sont prises en charge depuis longtemps. De fait, Windows 1.0 (commercialisé en 1985) prenait en charge « plusieurs imprimantes et traceurs » et incluait un « spouleur d'impression [qui] permet à l'utilisateur d'utiliser un fichier tout en imprimant un autre fichier », d'après le dossier de presse de Windows 1.0. La capture d'écran de Windows 1.0 ci-dessous montre les fichiers inclus avec cette version de Windows : Epson.drv, beaucoup de fichiers de polices et le processus du spouleur d'impression. Certaines parties du système d'impression sont plus anciennes que les gens qui travaillent dessus. :-)

Windows 1.0 MS-DOS Executive avec une liste de fichiers.

Au cours des années, le système d'impression a évolué pour devenir une architecture complexe prenant en charge l'impression sur une très grande variété d'imprimantes. Il peut s'agir d'une simple imprimante domestique à jet d'encre d'une valeur de 50 dollars ou d'un serveur d'impression haute disponibilité hébergeant des milliers de files d'attente d'impression pour des milliers d'utilisateurs, pilotant des imprimantes valant des dizaines de milliers de dollars chacune.

Système d'impression avancé Xerox et une imprimante domestique plus simple EpsonLe système d'impression touche plusieurs aspects et facettes de Windows. Il présente une interface utilisateur et héberge des pilotes qui affichent également une interface utilisateur. Il réalise des opérations graphiques complexes, car l'impression consiste essentiellement à retracer sur papier ce qui est affiché à l'écran. Il englobe des communications de niveau inférieur, principalement USB ou réseau (la majorité des imprimantes achetées aux États-Unis aujourd'hui sont des imprimantes réseau, mais nos données télémétriques indiquent que plus de 75 % des imprimantes installées avec la version Windows 8 Consumer Preview sont connectées via un port USB). Le système d'impression doit s'adapter à des déploiements stratégiques de très grande taille dans de grandes entreprises, tout en s'exécutant efficacement sur de petits systèmes.

Dans ce billet, je décris le travail que nous avons réalisé dans Windows 8 pour réinventer la manière dont le système d'impression peut offrir la meilleure prise en charge possible des périphériques aux clients. Vous verrez comment il fonctionne sur des PC ARM et dans les applications de style Metro, ainsi que ce que nous avons fait pour nous assurer que le maximum d'imprimantes existantes puissent « fonctionner simplement », que vous y accédiez sur le Bureau, à partir d'une application de style Metro ou depuis un appareil exécutant Windows RT.

Réinventer le système d'impression pour Windows 8

Dans Windows 8, nous avons introduit une nouvelle architecture des pilotes d'imprimantes, que nous appelons la version 4, ou v4. L'architecture v4 génère des pilotes d'imprimantes plus rapides et plus petits qui reposent sur le concept d'infrastructure de pilotes d'imprimantes : un système permettant aux utilisateurs d'installer leurs imprimantes sans avoir à localiser le pilote de ce périphérique, dans de nombreux cas.

Comme vous l'avez sans doute deviné, v4 est la quatrième version de l'architecture des pilotes d'imprimantes dans Windows. V3 était l'architecture utilisée de Windows 2000 à Windows 7. Elle est d'ailleurs toujours entièrement prise en charge dans Windows 8 pour des raisons de compatibilité des périphériques. Ainsi, si vous ne possédez qu'un seul pilote pour votre imprimante, il doit toujours fonctionner dans Windows 8. Les versions 1 et 2 étaient les architectures des pilotes de Windows 1.0 à Windows ME.

Avant d'expliquer le fonctionnement du système d'impression, j'aimerais aborder certaines des exigences préalables auxquelles nous avons répondu avec le système d'impression de Windows 8.

Impression à partir des applications de style Metro

Nous devions déterminer comment permettre aux développeurs d'applications de style Metro d'imprimer. Il est nécessaire de connaître la programmation graphique GDI (Graphics Device Interface) ou XPS (XML Paper Specification) pour imprimer à partir d'applications win32. Pour rendre l'impression possible à partir des applications Windows 8, nous avons entièrement réinventé l'activation de l'impression dans Windows Runtime et nous avons rendu l'impression très simple d'utilisation à partir des applications HTML5/JavaScript et XAML/C#.

Intégration de l'impression aux applications de style Metro

L'impression à partir d'une application de style Metro doit naturellement être une expérience de style Metro. Je suis certain que lors d'une impression, nous sommes nombreux à voir apparaître un petit applet qui nous informe que l'imprimante n'a plus de papier ou qui nous propose d'acheter de l'encre.

Fenêtre de l'imprimante Epson présentant le type et le format du papier, ainsi que des boutons permettant de vérifier les niveaux d'encre, d'acheter de l'encre Epson ou d'accéder au support en ligne.

Ces fenêtres contextuelles sont très courantes sur les imprimantes à jet d'encre. Certaines fenêtres apparaissent lorsque cela est pertinent (le niveau d'encre est faible), alors que d'autres s'affichent à chaque impression. Ces fenêtres contextuelles proviennent du logiciel de pilote d'imprimante même, et elles présentent toutes une interface utilisateur de bureau, évidemment. Mais lorsque vous imprimez à partir de l'application Photos de style Metro, par exemple, nous ne souhaitons pas que vous soyez obligé d'accéder au Bureau simplement pour voir une interface utilisateur vous informant que l'impression est en cours.

Impression dans Windows RT

Les pilotes d'imprimantes ont évolué au fil du temps et comprennent maintenant un grand nombre de fonctionnalités. Certains permettent d'installer des services, d'autres de nombreuses petites applications et beaucoup sont maintenant d'une taille importante. Le modèle des pilotes d'imprimantes v3 utilisé depuis Windows 2000 s'est transformé en modèle hautement complexe et extensible, ce qui a donné une grande liberté aux fabricants d'imprimantes pour choisir ce qui est installé avec leurs pilotes. Lorsque nous avons envisagé la manière dont cela devait fonctionner sur certains des pilotes qui allaient s'exécuter sur Windows RT, nous savions qu'un grand nombre de changements architecturaux seraient nécessaires. Il était important pour nous de ne pas impacter négativement les systèmes ARM en exécutant des services inutiles et nous voulions réduire l'utilisation des ressources système tout en prenant en charge autant de périphériques que possible.

Un grand nombre d'imprimantes prises en charge avec un nombre réduit de pilotes

Il existe un grand nombre de fonctionnalités d'impression différentes et Windows prend en charge une grande variété d'imprimantes. Dans Windows 7 et les versions antérieures de Windows, chacune de ces imprimantes nécessitait un pilote spécifique pour fonctionner (il existe des exceptions, par exemple les pilotes d'imprimantes universels, mais ils ont tendance à être volumineux et à consommer beaucoup de ressources). Cela signifiait que le nombre de pilotes inclus avec Windows (nous les appelons des pilotes intégrés) était très important afin d'assurer une bonne prise en charge. Bien évidemment, nous proposons beaucoup d'autres pilotes sur Windows Update, mais nous pensons qu'il est important de disposer d'un noyau dur de pilotes intégrés prenant en charge les périphériques les plus répandus, afin d'optimiser les tâches d'impression des gens qui ne peuvent ou ne souhaitent pas télécharger un pilote depuis Windows Update. Les pilotes intégrés sont essentiels pour Windows RT. En fait, il n'utilise que des pilotes d'imprimantes intégrés. Le défi consistait ici à prendre en charge un jeu cohérent d'imprimantes tout en réduisant les ressources requises.

Un autre défi intéressant concernant la prise en charge d'un grand nombre d'imprimantes reposait sur l'obsolescence de cette prise en charge au fil du temps. Le jeu de pilotes inclus dans Windows 7, par exemple, offrait une excellente prise en charge pour les périphériques commercialisés en 2008 et en 2009, mais avec la sortie de nouveaux périphériques au fil des années, le jeu de pilotes dans Windows 7 est devenu de moins en moins approprié. Un des défis importants que Windows 8 doit relever consiste alors à s'assurer que Windows fournit une prise en charge de haut niveau pour un grand nombre d'imprimantes, y compris pour celles qui ne sont pas encore sorties.

Partage d'imprimantes

Quiconque a déjà administré un serveur d'impression peut dire que c'est l'installation des pilotes appropriés au partage qui prend le plus de temps dans la gestion d'un serveur d'impression. Vous pouvez également rencontrer des difficultés lorsque vous essayez de partager une imprimante chez vous, en particulier si les versions 32 bits et 64 bits de Windows sont toutes les deux installées. Cela devient complexe parce que le « serveur » d'impression (qui désigne simplement le PC auquel l'imprimante est connectée, et non Windows Server) doit fournir les pilotes aux clients qui souhaitent imprimer sur l'imprimante partagée. Dans Windows 7, nous avons utilisé le groupe résidentiel pour résoudre ce problème. Il fonctionne bien la plupart du temps. Toutefois, la nécessité de charger des pilotes pour chaque architecture Windows devient plus problématique si l'on considère l'impression dans Windows RT.

Bien qu'il soit probable que la plupart des gens qui impriment à partir de périphériques Windows RT utilisent des imprimantes sans fil, nous ne voulions pas exclure totalement la possibilité d'une impression sur une imprimante USB. D'un autre côté, nous ne voulions pas accroître la complexité du partage d'imprimantes en demandant aux utilisateurs d'ajouter des pilotes pour les clients 32 bits, pour les clients 64 bits et pour les clients Windows RT ! Avec le modèle v4 dans Windows 8, nous avons par conséquent élaboré un nouveau mode de partage des imprimantes, qui n'exige pas que les pilotes des clients soient placés dans le serveur d'impression.

Le système d'impression dans Windows 8

Les applications vous permettent de créer et d'afficher du contenu. L'objectif du système d'impression est de fournir à ces applications le moyen d'imprimer du contenu sur n'importe quelle imprimante installée, sans avoir à se préoccuper du périphérique qui est réellement installé. Je vais maintenant aborder brièvement le mode d'impression des applications et expliquer comment nous obtenons le contenu sur une page imprimée.

Création d'un contenu imprimable

Pour les applications, l'ajout de la prise en charge de l'impression est assez simple. Le contenu que vous voulez imprimer à partir d'une application se trouve dans un format spécifié par l'application. Pour les applications de style Metro, il s'agira le plus souvent du format HTML5 ou XAML, mais pour les applications Win32, telles que Word ou Photoshop, le contenu est dans un format propre à chaque application.

Donc lorsque vous souhaitez imprimer depuis une application sur votre imprimante, le système d'impression doit convertir le contenu au format de l'application vers le format que l'imprimante comprend. Malheureusement, les imprimantes ne comprennent pas toutes les mêmes formats (et de loin !) et cela finit par nécessiter beaucoup de travail.

Pour donner un exemple concret, une application comme Word utilise le système graphique GDI pour tracer le contenu à l'écran et sur l'imprimante. Lorsque cela est possible, le système d'impression utilise un format intermédiaire de haute qualité, appelé XPS (XML Paper Specification) comme format de contenu interne. Nous convertissons le contenu de Word en XPS. Nous avons choisi d'utiliser XPS comme base de notre système d'impression, car c'est un format très flexible qui ressemble à du papier électronique. Il prend en charge la couleur haute fidélité et comme il s'agit d'une description XML sans code exécutable incorporé, il est parfait pour l'archivage et est sécurisé par rapport aux autres possibilités. En outre, Microsoft a collaboré avec ECMA International (European Computer Manufacturers Association) pour en faire une norme ouverte (norme ECMA TC46, OpenXPS). La visionneuse de bureau et le lecteur peuvent tous les deux afficher OpenXPS. J'« imprime » tous mes reçus d'achats en ligne au format XPS.

Une fois le contenu géré par le système d'impression, il est converti au format que l'imprimante comprend (uniquement si cela est nécessaire ; un grand nombre d'imprimantes comprennent XPS directement), le système d'impression l'envoie à l'imprimante avec les options appropriées définies, puis la tâche est imprimée.

Dans Windows 8, nous avons amélioré ce scénario, car toutes les applications de style Metro utilisent Direct2D comme format de dessin de base et que Direct2D et XPS partagent le même « langage » graphique XML. Ainsi dans un autre exemple, le lecteur utilise Direct2D pour rendre son contenu à l'écran. Il utilise également Direct2D pour rendre le même contenu sur le système d'impression. Le contenu du lecteur doit facilement être envoyé au système d'impression au format XPS, sans conversion coûteuse depuis GDI.

Si l'application requiert une disposition d'impression différente de la disposition à l'écran, elle peut utiliser des feuilles de style ou XAML. Cela signifie que vous n'avez pas besoin de « cliquer ici pour obtenir une version imprimable de cette page ». Si votre imprimante prend XPS en charge, alors absolument aucune conversion n'est nécessaire pour aller de l'application à l'imprimante et l'impression est extrêmement rapide !

Maintenant que vous avez une idée générale de la façon dont une application envoie des informations d'impression au système d'impression, je vais parler de ce que fait le système avec ces informations, des services qu'il fournit et des autres éléments qui ont changé dans Windows 8.

Prise en charge d'un grand nombre d'imprimantes

Un des principaux avantages de Windows est qu'il fait abstraction de l'imprimante spécifique dans l'application, ce qui permet au programmeur de l'application de ne pas se préoccuper de l'imprimante que vous avez installée. Windows prend en charge des dizaines de milliers de modèles d'imprimantes au total, notamment des imprimantes qui sont prises en charge par des pilotes disponibles via Windows Update ou depuis le site Web du fabricant. Lorsque des imprimantes ne fonctionnent pas, c'est souvent que le fabricant a choisi de bloquer l'installation si la version de Windows sur laquelle leur logiciel est installé n'est pas reconnue. Nous travaillons avec les fabricants d'imprimantes pour que ces packages soient mis à jour, mais cela prend du temps.

Lorsque vous connectez une nouvelle imprimante dans Windows, elle doit dans l'idéal fonctionner tout simplement, sans nécessiter l'installation de pilotes supplémentaires.

Alors, comment faire en sorte que cela se produise ? Dans le passé, nous avons commercialisé beaucoup de pilotes d'imprimantes dans Windows. Vista contenait environ 4 500 pilotes et Windows 7 contenait environ 2 100 pilotes. Même si Windows 7 contenait deux fois moins de pilotes que Vista, il fournissait une meilleure couverture du marché, c'est-à-dire qu'il offrait plus de chances de contenir le pilote approprié aux imprimantes les plus répandues. Pourquoi ? Il existe une diversité incroyable d'imprimantes. Dans Vista, nous avons pris en charge un grand nombre de périphériques anciens et moins fréquemment utilisés, et la pertinence du jeu de périphériques pris en charge n'était pas aussi optimale que dans Windows 7.

Entre parenthèses, lorsque nous sortons une nouvelle version de Windows, nous prenons les pilotes déjà contenus dans la version précédente et les publions sur Windows Update. Ainsi, même si ces périphériques deviennent moins populaires, il est toujours possible de les faire fonctionner automatiquement simplement en les connectant.

J'ai pris une photo de l'un des bancs de tests de l'un de nos laboratoires d'imprimantes (nous en avons plusieurs), où nous vérifions que tout cela fonctionne. Vous pouvez voir plusieurs petites imprimantes à jet d'encre et imprimantes laser provenant de différents fabricants. Heureusement pour mes oreilles, nous ne réalisons pas beaucoup de tests avec des imprimantes matricielles de nos jours.

Tests d'imprimantes

Les gens ont tendance à conserver leurs imprimantes pendant 5 à 7 ans en moyenne et lorsque nous envisageons les prises en charge, nous devons nous demander : « Quels périphériques les gens utilisent-ils ? » « Quels ont été les périphériques les plus populaires au cours des dernières années et lesquels les remplaceront dans le futur ? » Cette dernière partie de la question est complexe car, peu après la sortie de Windows, les fabricants d'imprimantes commercialiseront des périphériques dont nous ne savions absolument rien auparavant. Cela signifie qu'avec le temps, le jeu de périphériques que nous prenons en charge dans une version donnée de Windows devient obsolète.

Nous savons qu'à tout moment, environ 100 modèles d'imprimantes spécifiques représentent environ 50 % des périphériques installés. Pour prendre en charge 75 % des modèles utilisés actuellement, nous devons prendre en charge autour de 300 modèles. Le diagramme ci-dessous illustre cette notion.

Périphériques requis pour une bonne couverture du marché

Pour parvenir à 95 %, nous devons prendre en charge plus de 1 000 modèles. Mais le problème se complique encore, car les imprimantes qui constituent ce jeu de 100, 300 ou 1 000 modèles changent tout le temps. Les 100 imprimantes qui représentent 50 % du marché aujourd'hui sont différentes des 100 imprimantes qui représenteront 50 % du marché la semaine prochaine, le mois prochain et d'autant plus l'année prochaine. Chaque jour, de nombreuses personnes achètent et installent de nouvelles imprimantes.

Comme je l'ai indiqué, nous avons dans le passé adopté une méthode radicale pour résoudre ce problème. Nous avons des représentants des principaux fabricants d'imprimantes qui travaillent directement avec Microsoft, dans les bureaux de Redmond, pour vérifier leur code source dans Windows. Leur objectif est de créer un tout nouveau jeu de pilotes intégrés pour chaque nouvelle version de Windows. Cela n'est pas très efficace.

Dans Windows 8, nous avons suivi une approche radicalement différente et avons cessé de fournir un grand nombre de pilotes d'imprimantes avec Windows. Nous avons à la place créé une infrastructure de pilotes d'imprimantes. Cette infrastructure est extensible, car elle permet d'imprimer sur des périphériques existants, mais elle permet également aux fabricants de prendre en charge de nouveaux périphériques, même ceux qui n'ont pas encore été conçus.

Avec cette infrastructure, nous nous approchons d'une impression sans pilote qui rend inutile la recherche des pilotes. À la place, l'imprimante fonctionne simplement avec le système d'impression de Windows. Une vraie impression sans pilote nécessite de modifier la façon dont la plupart des imprimantes sont conçues et l'infrastructure de pilotes d'imprimantes soutient cette idée, mais nous pensons par ailleurs qu'il est très important de prendre autant que possible en charge les périphériques existants.

Avec la prise en charge des imprimantes nouvelles et à venir, le nombre des imprimantes prises en charge par l'infrastructure de pilotes d'imprimantes de Windows 8 va augmenter au fil du temps.

Au-delà de la formidable augmentation du nombre des périphériques couverts, nous avons également pu réduire les ressources nécessaires pour parvenir à cette couverture.

D'abord, nous avons réduit la quantité d'espace disque requise pour prendre en charge les imprimantes et les périphériques d'images de 768 Mo dans Windows Vista à environ 184 Mo dans Windows 8. Cette valeur est une moyenne des différentes éditions et architectures de Windows 8. Le graphique suivant illustre la réduction de l'espace utilisé depuis Windows Vista.

Espace disque requis pour la prise en charge des imprimantes et des périphériques d'images

Comparaison de l'espace disque requis pour la prise en charge des imprimantes et des périphériques d'images dans Windows 8, Windows 7 et Windows Vista

En outre, la réduction de l'espace disque utilisé doit être accompagnée d'une augmentation de la pertinence des périphériques pris en charge directement par Windows. Le tableau suivant récapitule la façon dont la pertinence de la couverture des périphériques intégrés a augmenté, alors que l'espace disque utilisé a diminué.

 

Nombre approximatif de périphériques intégrés pris en charge

Proportion approximative des périphériques installés

Espace disque utilisé

Windows Vista

4 200

55-60 %

768 Mo

Windows 7

2 100

60-65 %

446 Mo

Windows 8

2 500

70 % à la sortie, jusqu'à 80 %

184 Mo

Ceci représente une amélioration considérable dans Windows 8. Cette réduction de l'espace utilisé se traduit directement en un espace de stockage plus important pour les utilisateurs de matériel dont la capacité de stockage est limitée, ce qui sera sans doute une caractéristique de certains ordinateurs Windows RT.

Le modèle des pilotes d'imprimantes de Windows 8 nous permet également d'attirer l'attention de nos partenaires fabricants sur un jeu de code qui changera peu d'une version de Windows à l'autre, ce qui nous permettra de consacrer plus utilement ces ressources à l'amélioration de la qualité et des performances, au lieu de reconstituer constamment le jeu de pilotes.

Architecture du pilote d'imprimante

En plus de la création d'une architecture prenant en charge les besoins de Windows RT et des applications de style Metro, nous voulions nous assurer que le modèle fonctionnerait également avec les périphériques existants, et qu'il utiliserait des technologies connues des fabricants d'imprimantes, afin qu'ils puissent implémenter plus facilement la technologie des nouveaux pilotes.

Un pilote d'imprimante réalise plusieurs opérations clés :

  • La configuration permet à l'utilisateur de modifier des paramètres, convertissant (par exemple) l'intention d'activer l'impression recto verso en la commande précise dont l'imprimante a besoin pour effectuer cette opération. La configuration est présentée à l'utilisateur au moyen de l'interface utilisateur.
  • Le rendu convertit le contenu imprimé du format que le système d'impression de Windows utilise dans le format que l'imprimante comprend. Dans certains cas, l'imprimante peut comprendre directement le format d'impression natif de Windows (XPS). Pour ces imprimantes, aucune action n'est requise dans ce cas, sauf si les utilisateurs souhaitent réaliser des opérations de rendu supplémentaires (traiter plusieurs pages par feuille de papier physique, par exemple). La partie du pilote qui effectue le rendu s'appelle le filtre de rendu.
  • Les événements permettent à l'imprimante d'informer l'utilisateur que quelque chose s'est produit (une tâche s'est terminée, un bourrage papier a eu lieu ou l'imprimante n'a plus d'encre).

Interface utilisateur de configuration

La présentation de l'interface utilisateur représente un des grands changements opérés entre l'ancien modèle des pilotes et celui de Windows 8. Dans l'ancien modèle des pilotes d'imprimantes, l'interface utilisateur de configuration était intégrée au pilote. Voici un exemple d'interface utilisateur classique (elle provient de l'imprimante Epson NX430 actuellement sur mon bureau).

Boîte de dialogue des préférences d'impression de l'imprimante Epson NX430 Series avec des options pour la qualité d'impression, le papier, les niveaux d'encre, l'orientation, etc.

Comme je l'ai indiqué précédemment, nous devions trouver un moyen de faire apparaître l'interface utilisateur de style Metro lorsque les gens veulent modifier les paramètres d'impression.

Dans le modèle des pilotes de Windows 8, l'interface utilisateur du fabricant est complètement distincte de son pilote. Cette décision architecturale est mieux adaptée pour plusieurs raisons : l'interface utilisateur permettant de contrôler l'imprimante a maintenant la forme d'une application pouvant être appelée depuis des applications de style Metro ou de bureau. Cela permet aux fabricants d'imprimantes de présenter une expérience utilisateur beaucoup plus riche. Imaginez que vous accédiez à une vidéo montrant comment configurer votre imprimante ou installer une cartouche d'encre.

Voici un exemple d'application de style Metro qu'Epson a développée pour l'imprimante Epson NX430 :

Application plein écran de style Metro avec des options pour les niveaux d'encre, le type de papier, la galerie de produits Epson et des procédures

Vous pouvez voir que cette interface utilisateur présente toutes les caractéristiques d'une application de style Metro, mais pour votre imprimante. Elle comprend une vue attrayante des niveaux d'encre de l'imprimante, et est beaucoup plus facile à utiliser, en particulier sur les appareils tactiles.

Windows vous présentera automatiquement le type approprié d'interface utilisateur : l'interface utilisateur d'impression de bureau pour les applications de bureau et l'interface utilisateur de style Metro lorsque vous imprimez à partir d'applications de style Metro.

Si le fabricant n'a pas fourni d'interface utilisateur de configuration pour son périphérique, Windows fournit une interface utilisateur standard que vous pouvez utiliser avec n'importe quelle imprimante. Toutefois, si le fabricant de l'imprimante a décidé d'accompagner son périphérique d'une expérience personnalisée, il peut fournir une application qui remplace l'interface utilisateur Windows standard. Dans ce cas, lorsque vous décidez de modifier la configuration du périphérique, ou si cette dernière change lors de l'impression (bourrage papier par exemple), Windows affiche l'application personnalisée du fabricant à la place.

Rendu

Une des fonctions les plus importantes d'un pilote d'imprimante est de prendre le contenu que l'application produit lorsque vous lui demandez d'imprimer, et de le convertir en quelque chose que l'imprimante peut comprendre. Ceci a été l'un des points les plus difficiles de la conception du pilote d'imprimante de Windows 8, nous allons donc nous y attarder plus en détail.

Comme expliqué ci-dessus, les applications de bureau, telles que Word ou Photoshop, utilisent des commandes graphiques pour tracer leur contenu à l'écran ou sur l'imprimante. Dans ce cas, le système d'impression reçoit le contenu, le convertit au format XPS si nécessaire, puis appelle le pilote de l'imprimante (ou plus précisément, la partie du filtre de rendu du pilote) pour convertir le contenu au format approprié. Ceci est envoyé à l'imprimante et votre fichier est imprimé.

Un des plus grands défis que constitue la prise en charge d'une très grande variété d'imprimantes a probablement trait à la partie « rendu » de l'opération. Certaines des imprimantes les plus chères prennent en charge les langages PDL (Page Description Languages), tels que PostScript, PCL et XPS. Toutefois, les périphériques moins coûteux à destination du grand public sont fabriqués dans un esprit d'économie des coûts et nombre d'entre eux prennent en charge les méthodes propriétaires d'envoi des informations des pages à l'imprimante. Certains fabricants peuvent posséder quelques langages qu'ils utilisent sur toute leur gamme de produits, mais d'autres peuvent adapter le langage d'un modèle à l'autre en essayant de tirer le meilleur parti de leur matériel d'impression.

Ceci génère une correspondance 1:1 entre le pilote d'imprimante et le matériel d'impression.

Illustration présentant la correspondance entre PDL 1 et l'imprimante Fabrikam 1000, la correspondance entre PDL 2 et l'imprimante Fabrikam 2000, la correspondance entre PDL 3 et l'imprimante Fabrikam 2010

Imaginez que chaque PDL est un pilote d'imprimante complet et il est facile de voir que l'augmentation des imprimantes prises en charge implique une augmentation du nombre de pilotes. Bien sûr, il s'agit en quelque sorte d'une simplification et il est possible de créer un pilote qui prend en charge plusieurs périphériques. Nous avons fréquemment rencontré des pilotes prenant en charge une série d'imprimantes. Mais l'élément essentiel est que Windows 7 et les versions antérieures de Windows n'ont pas soutenu cette approche de conception.

Le modèle des pilotes d'imprimantes dans Windows 8 soutient l'idée qu'un langage PDL (ou pilote) peut être associé à plusieurs périphériques.

Illustration présentant la correspondance entre PDL X et 3 imprimantes différentes

Nous avons collaboré avec nos partenaires fabricants d'imprimantes pour qu'ils incluent un identifiant dans leurs périphériques, qui décrit de manière plus générique la façon dont ils sont pris en charge. Nous l'appelons ID compatible. Ainsi par exemple, si un périphérique possède un ID compatible qui indique que le périphérique prend en charge XPS, le système d'impression sait qu'il n'a pas besoin de trouver de pilote spécifique au modèle pour ce périphérique, il peut simplement installer un pilote XPS générique pour le périphérique. Windows comprend que le périphérique est une imprimante XPS générique et peut la considérer comme telle. Évidemment, Windows comprend également qu'il s'agit d'une imprimante Fabrikam 1 000 (ou autre), donc s'il existe un pilote spécifique au modèle, Windows l'installe. Mais si aucun pilote n'est disponible, Windows peut toujours imprimer sur l'imprimante à l'aide du pilote d'imprimante.

Ainsi dans cet exemple, nous avons un jeu de filtres de rendu intégrés dans le cadre du modèle de pilotes d'imprimantes et ils peuvent être installés pour n'importe quel périphérique qui implémente un ID compatible correspondant. L'extension logique de cette idée est qu'il est fort possible pour les périphériques futurs, les périphériques non encore conçus ou créés, d'être compatibles avec le pilote d'imprimante dans Windows 8. Nous avons travaillé avec les fabricants d'imprimantes et ils prévoient tous d'implémenter des ID compatibles dans leurs périphériques (nombre d'entre eux le font déjà). Grâce à cette fonctionnalité, le nombre d'imprimantes prises en charge dans Windows 8 augmentera au fil du temps, au lieu de décroître, et de plus en plus de gens pourront utiliser leurs imprimantes simultanément dans Windows 8 sans avoir à rechercher le pilote approprié.

Mais qu'en est-il de tous les périphériques disposant de langages de rendu propriétaires ? Le pilote d'imprimante prend également en charge ce modèle, mais il présente l'inconvénient d'un filtre de rendu différent pour chaque petit jeu de modèles parlant son propre langage unique. Il n'existe pas de solution à ce problème, et dans Windows 8, plusieurs filtres traitent un jeu de modèles connus. Toutefois, une fois encore, nous avons travaillé avec les fabricants d'imprimantes pour améliorer cette situation et nous espérons voir les fabricants produire des imprimantes capables d'utiliser plus facilement le pilote d'imprimante dans le futur.

Impression depuis Windows RT

La réduction des ressources utilisées par le pilote d'imprimante contribue directement à réduire l'empreinte de Windows, ce qui est particulièrement utile sur Windows RT. En outre, l'architecture des pilotes d'imprimantes v3 était hautement extensible et a évolué sur de nombreuses années pour se transformer en un modèle qui a encouragé le développement de pilotes d'imprimantes volumineux et complexes. Certains pilotes installent des services qui s'exécutent en permanence, ce qui épuise la batterie et utilise du temps processeur. J'ai vu des pilotes qui ne prennent en charge qu'un seul périphérique, mais qui sont plus volumineux que l'intégralité du jeu de pilotes d'imprimantes dans Windows 8 !

La nécessité de prendre en charge l'impression dans Windows RT, et un désir général de renforcer l'efficacité de l'impression, nous ont entraîné à développer une architecture qui contrôle plus étroitement ce que le pilote peut faire. J'ai déjà mentionné que la partie interface utilisateur de l'impression est aujourd'hui une application et constitue maintenant une composante entièrement distincte du pilote. Cela signifie qu'elle est également facultative et les pilotes fonctionneront parfaitement avec l'interface utilisateur d'impression classique de Microsoft. Nous avons par ailleurs simplifié l'architecture des pilotes pour renforcer leur efficacité sur le plan de la consommation électrique en supprimant les dépendances des services et en réduisant la probabilité selon laquelle des logiciels supplémentaires seront inclus avec le pilote.

Avec le modèle des pilotes de Windows 8, nous avons également considérablement amélioré la façon dont les pilotes d'imprimantes sont installés. Dans Windows 7 et les versions antérieures de Windows, tous les pilotes d'imprimantes sont stockés dans le « magasin de pilotes », sorte de base de données pour tous les types de pilotes. Lorsque vous connectiez une imprimante, vous pouviez trouver le pilote approprié dans le magasin de pilotes et le copier à un emplacement spécial où le spouleur pouvait l'utiliser avec votre imprimante. Dans Windows 8, nous avons supprimé cette opération de copie, qui utilisait beaucoup d'entrées-sorties disque. Le spouleur d'impression sait maintenant simplement comment trouver le pilote dans le magasin de pilotes.

Pour prendre un exemple concret, nous avons comparé les temps d'installation d'une imprimante Epson Artisan sur Windows 7 et sur Windows 8 (avec un pilote relativement petit sur Windows 7) : le temps d'installation sur Windows 7 était de 14 secondes, contre moins de 2 secondes sur Windows 8.

Conclusion

Comme vous pouvez le voir, l'architecture des pilotes d'imprimantes de Windows 8 représente une grande avancée. Elle fournit une bonne prise en charge pour un grand nombre d'imprimantes que les gens possèdent déjà et prend en charge les périphériques futurs grâce à une infrastructure de pilotes intégrés rapide et de petite taille. Les performances sont satisfaisantes et l'empreinte sur le disque est minimale.

N'hésitez pas à nous faire part de vos commentaires.

-- Adrian Lannin