Obwohl zum Lesen und Arbeiten immer mehr Onlineressourcen verwendet werden, zählt das Drucken weiterhin zu den häufigsten Tätigkeiten am PC. Wir haben uns vorgenommen, diesen alltäglichen Vorgang unter Windows 8 zu vereinfachen und zu verbessern. Dazu kooperieren wir mit allen beteiligten Partnern. Dieser Blogbeitrag wurde von Adrian Lannin verfasst, einem führenden Programmmanager aus dem Printing-Team. 

– Steven


Von allen Peripheriegeräten, die an Windows-PCs angeschlossen werden, sind Drucker eines der verbreitetsten und am längsten unterstützten Geräte. Laut dem Windows 1.0-Pressematerial hat bereits Windows 1.0 (1985 veröffentlicht) verschiedene Drucker und Plotter unterstützt und stellte einen Druckspooler bereit, mit dem Benutzer eine Datei bearbeiten konnten, während eine andere gedruckt wurde. Im folgenden Windows 1.0-Screenshot sind die Dateien, die in dieser Windows-Version enthalten waren – „Epson.drv“, zahlreiche Schriftartendateien – und der Druckspooler-Vorgang abgebildet. Verschiedene Elemente des Drucksystems sind älter als die Leute, die daran arbeiten. :-)

Windows 1.0 (MS-DOS Executive) mit Dateiliste

Im Lauf der Jahre hat sich das Drucksystem zu einer komplexen Architektur entwickelt, die das Drucken mit zahlreichen Geräten unterstützt: von einfachen 50-Euro-Tintenstrahldruckern bis zu Druckservern mit hoher Verfügbarkeit und unzähligen Warteschlangen für Hunderttausende Benutzer und verbundenen Druckern, die pro Stück mehrere Zehntausend Euro kosten können.

Ein komplexes Drucksystem von Xerox und ein Heimdrucker von EpsonDas Drucksystem verwendet zahlreiche Bereiche und Elemente von Windows. Es zeigt Benutzeroberflächen an und hostet Treiber, die ebenfalls Benutzeroberflächen anzeigen. Es führt aufwändige Grafikvorgänge aus, denn Drucken besteht letztlich darin, die Bildschirminhalte auf Papier nachzuzeichnen. Es umfasst Kommunikationen auf niedriger Ebene, vorwiegend über USB oder Netzwerke. (Die Mehrzahl der heute in den USA gekauften Drucker sind netzwerkfähig. Unsere Telemetriedaten zeigen jedoch, dass über 75 % der Drucker, die unter der Windows 8 Consumer Preview installiert werden, über einen USB-Port angeschlossen sind.) Das Drucksystem muss in großen Unternehmen auf sehr umfangreiche, geschäftswichtige Einsätze skaliert werden können, jedoch auch in kleinen Systemen effizient arbeiten.

In diesem Blogbeitrag werden die Entwicklungen behandelt, mit denen das innovative Drucksystem unter Windows 8 den Benutzern eine optimale Geräteunterstützung bietet. Die Funktionsweise wird auf ARM-basierten PCs und in Apps im Metro-Stil demonstriert. Außerdem erläutere ich die von uns unternommenen Anstrengungen, damit die größtmögliche Zahl vorhandener Drucker problemlos funktioniert – egal ob Sie über einen Desktop-PC, über eine App im Metro-Stil oder über ein Windows RT-Gerät darauf zugreifen.

Neuentwicklung des Drucksystems für Windows 8

Für Windows 8 haben wir eine neue Druckertreiberarchitektur eingeführt, die wir Version 4 oder v4 nennen. Die v4-Architektur ermöglicht kleinere, schnellere Druckertreiber und unterstützt das Konzept eines Frameworks für Druckklassentreiber: ein System, mit dem Benutzer die meisten Drucker installieren können, ohne einen Treiber für das jeweilige Gerät suchen zu müssen.

Sie haben wahrscheinlich schon erraten, dass v4 die vierte Iteration der Druckertreiberarchitektur unter Windows ist. Die Architektur v3 wurde unter Windows 2000 bis Windows 7 verwendet. Aus Gründen der Gerätekompatibilität wird diese Architektur unter Windows 8 weiterhin vollständig unterstützt. Sofern Ihnen ein vorhandener Treiber für Ihren Drucker zur Verfügung steht, sollte er auch unter Windows 8 funktionieren. Die Versionen 1 und 2 waren die Treiberarchitekturen für Windows 1.0 bis Windows ME.

Bevor ich die Funktionsweise des Drucksystems erläutere, möchte ich verschiedene Anforderungen besprechen, denen das Windows 8-Drucksystem entsprechen sollte.

Drucken über Apps im Metro-Stil

Zu den zu klärenden Aspekten gehörte die Möglichkeit für Entwickler von Apps im Metro-Stil, eine Druckfunktion zur Verfügung zu stellen. Um über win32-Anwendungen drucken zu können, sind Kenntnisse der Grafikprogrammierungen erforderlich, entweder GDI (Graphics Device Interface) oder XPS (XML Paper Specification). Im Zuge der Entwicklung der Druckfunktion für Windows 8-Apps wurde das Drucken über die Windows-Runtime komplett neu entwickelt und für Benutzer von HTML5/JavaScript- und XAML/C#-Apps sehr benutzerfreundlich gestaltet.

Integration der Druckfunktion in Apps im Metro-Stil

Das Drucken über Apps im Metro-Stil sollte natürlich der Metro-Stil-Benutzererfahrung entsprechen. Bestimmt wurde den meisten von Ihnen während des Druckvorgangs schon einmal durch ein kleines Applet angezeigt, dass der Drucker neues Papier benötigt oder wo sie neue Tinte erwerben können.

Epson-Druckdialogfeld mit Angaben zu Papiertyp und -größe, mit Schaltflächen zur Kontrolle der Tintenstände, zum Kauf von Epson-Tinte und zum Kontaktieren des Onlinesupports

Diese Popups sind bei Tintenstrahldruckern sehr verbreitet. Einige werden nur in bestimmten Situationen angezeigt (wenn z. B. die Tintenpatrone fast leer ist), andere öffnen sich bei jedem Druckvorgang. Diese Popups werden von der Druckertreibersoftware gesteuert und gehören nun natürlich zur Desktop-Benutzeroberfläche. Wenn Sie jedoch z. B. über die Fotos-App im Metro-Stil drucken, sollen Sie nicht für eine Meldung zum Desktop wechseln müssen, die Ihnen nur anzeigt, dass der Druckvorgang ausgeführt wird.

Drucken unter Windows RT

Druckertreiber haben sich über die Jahre weiterentwickelt und enthalten zahlreiche Funktionen: Einige installieren Dienste, andere installieren viele kleine Anwendungen und wieder andere haben inzwischen eine beträchtliche Größe angenommen. Das seit Windows 2000 verwendete v3-Druckertreibermodell hat sich zu einem hochkomplexen und erweiterbaren Modell entwickelt, das den Druckerherstellern große Freiheiten bietet, welche Funktionen mit ihrer Treibersoftware installiert werden sollen. Als wir überlegten, wie dieses Prinzip auf einige der Geräte übertragen werden kann, die Windows RT ausführen werden, war uns klar, dass wir wichtige Änderungen an der Architektur vornehmen mussten. Es musste gewährleistet sein, dass keine überflüssigen Dienste ausgeführt werden, die sich negativ auf ARM-Systeme auswirken. Außerdem sollten Systemressourcen sparsam verwendet und dennoch so viele Geräte wie möglich unterstützt werden.

Deutlich weniger Treiber unterstützen mehr Drucker

Die Druckerfunktionen unterscheiden sich erheblich, und Windows unterstützt eine enorme Bandbreite an Druckern. Unter Windows 7 und den früheren Windows-Versionen konnte jeder dieser Drucker nur mit einem spezifischen Treiber verwendet werden. (Es gibt einige Ausnahmen wie universelle Druckertreiber, die jedoch in der Regel groß und ressourcenintensiv sind.) Das bedeutet, dass die Anzahl der in Windows enthaltenen (vorinstallierten) Treiber sehr groß war, um eine gute Unterstützung zu gewährleisten. Auf Windows Update stehen natürlich noch sehr viel mehr Treiber zur Verfügung. Wir halten jedoch eine Grundausstattung vorinstallierter Treiber für häufig verwendete Geräte für wichtig, um auch Druckfunktionen für Benutzer zu unterstützen, die keine Treiber von Windows Update herunterladen möchten oder können. Mitgelieferte Treiber sind für Windows RT essenziell – hier werden nämlich ausschließlich vorinstallierte Druckertreiber verwendet. Die spannende Aufgabe besteht darin, ausreichend viele Drucker zu unterstützen, dabei jedoch die hierfür benötigten Ressourcen zu reduzieren.

Eine weitere interessante Herausforderung bei der Unterstützung zahlreicher Drucker ist die Tatsache, dass die Unterstützung im Laufe der Zeit veraltet. Die unter Windows 7 vorinstallierten Treiber boten z. B. eine hervorragende Unterstützung für Geräte, die 2008 und 2009 auf den Markt kamen – in den folgenden Jahren sank jedoch mit Einführung neuer Geräte die Bedeutung dieses Treibersatzes. Also muss unter Windows 8 eine leistungsstarke Unterstützung für zahlreiche Drucker gewährleistet werden, sogar für Geräte, die noch gar nicht auf dem Markt sind.

Freigeben von Druckern

Jeder Druckserveradministrator kann Ihnen bestätigen, dass die Installation der richtigen Treiber zur Unterstützung der Druckerfreigabe die zeitaufwändigste Aufgabe bei der Verwaltung eines Druckservers ist. Mit einigen dieser Probleme können Sie auch konfrontiert werden, wenn Sie zu Hause einen Drucker freigeben möchten, vor allem, wenn Sie sowohl 32- als auch 64-Bit-Versionen von Windows verwenden. Dies ist deswegen knifflig, da der „Druckserver“ (hier ist nur der PC gemeint, an den der Drucker angeschlossen ist, kein tatsächlicher Windows-Server) die Treiber für die Clients bereitstellen muss, die mit dem freigegebenen Drucker drucken wollen. Unter Windows 7 verwenden wir zur Lösung dieses Problems HomeGroup, und meistens funktioniert das auch gut. Die Notwendigkeit, für jede Windows-Architektur Treiber zu laden, wird jedoch problematischer, wenn über Windows RT gedruckt werden soll.

Wir gehen zwar davon aus, dass die meisten Benutzer, die über Windows RT-Geräte drucken, kabellose Drucker verwenden. Dennoch wollten wir die Möglichkeit nicht ausschließen, mit einem USB-Drucker zu drucken. Andererseits wollten wir die Komplexität der Druckerfreigabe nicht dadurch vergrößern, dass Benutzer Treiber für 32-Bit-, 64-Bit- und Windows RT-Clients hinzufügen müssen! Daher haben wir mit dem v4-Modell unter Windows 8 eine innovative Methode für die Druckerfreigabe entwickelt, mit der es nicht erforderlich ist, Clienttreiber auf dem Druckserver zu installieren.

Das Drucksystem unter Windows 8

Mit Apps können Sie Inhalte erstellen und anzeigen. Der Zweck des Drucksystems ist es, diesen Apps die Funktionen zum Drucken Ihrer Inhalte auf jedem installierten Drucker bereitzustellen, egal, welches Gerät installiert ist. Ich werde nun erläutern, wie die App druckt und dabei ausführlicher darauf eingehen, wie wir den Inhalt auf eine gedruckte Seite übertragen.

Erstellen von druckfähigen Inhalten

Das Hinzufügen von Druckerunterstützung für Apps ist relativ einfach. Der Inhalt, den Sie über eine App drucken möchten, liegt in einem von der App spezifizierten Format vor. Bei Apps im Metro-Stil ist das häufig HTML5 oder XAML. Bei Win32-Anwendungen wie Word oder Photoshop liegt der Inhalt jedoch in dem Format vor, das der jeweiligen Anwendung entspricht.

Wenn Sie also über eine Anwendung auf Ihrem Drucker drucken möchten, muss das Drucksystem zunächst den Inhalt aus dem Anwendungsformat in das Format umwandeln, das der Drucker verarbeiten kann. Dummerweise verstehen nicht alle Drucker dieselben Formate (nicht einmal annäherungsweise!), was einigen Aufwand verursacht.

Ein praktisches Beispiel: Eine Anwendung wie Word verwendet das GDI-Grafiksystem, um die Inhalte sowohl auf den Bildschirm als auch auf den Drucker zu zeichnen. Nach Möglichkeit verwendet das Drucksystem das hochwertige Zwischenformat XPS (XML Paper Specification) als internes Inhaltsformat. Wir konvertieren den Inhalt von Word in XPS. Wir haben uns für XPS als Grundlage unseres Drucksystems entschieden, da es ein sehr flexibles Format ist und sich wie elektronisches Papier verhält. Es unterstützt eine hohe Farbtreue. Als XML-basierte Beschreibung ohne eingebetteten ausführbaren Code eignet es sich hervorragend für Archivierungszwecke und ist im Vergleich zu anderen Optionen sicher. Zudem hat Microsoft mit ECMA International (European Computer Manufacturers Association) kooperiert und XPS als offenen Standard durchgesetzt (ECMA-Standard TC46, OpenXPS). Sowohl der Desktop-Viewer als auch die Reader-App können OpenXPS anzeigen. Ich „drucke“ alle meine Belege von Onlinekäufen als XPS-Datei.

Wird der Inhalt vom Drucksystem verwaltet, wird er zunächst in ein Format umgewandelt, das der Drucker versteht (sofern dies nötig ist, denn viele Drucker können XPS direkt verarbeiten), und vom Drucksystem mit dem korrekten Optionssatz an den Drucker gesendet – schließlich wird der Druckauftrag ausgeführt.

Unter Windows 8 haben wir diese Methode deutlich verbessert, da alle Apps im Metro-Stil Direct2D als Basiszeichenformat verwenden und Direct2D und XPS dieselbe XML-basierte „Grafiksprache“ verwenden. Die Reader-App rendert ihre Inhalte also mithilfe von Direct2D auf dem Bildschirm. Mit Direct2D werden außerdem dieselben Inhalte an das Drucksystem gerendert. Die Inhalte der Reader-App können problemlos im XPS-Format an das Drucksystem gesendet werden, ohne dass eine aufwändige Konvertierung aus GDI nötig wäre.

Wenn die App ein nicht dem Bildschirmlayout entsprechendes Drucklayout benötigt, kann sie dies mit Formatvorlagen oder XAML erstellen. Das bedeutet, dass Sie in Dokumenten nicht erst auf die Schaltfläche für die Druckversion klicken müssen. Bei einem Drucker, der XPS unterstützt, müssen auf dem Weg von der App bis zum Drucker keinerlei Umwandlungen vorgenommen werden, sodass das Drucken erheblich beschleunigt wird.

Nachdem Sie nun das allgemeine Prinzip kennen, mit dem eine App Druckinformationen an das Drucksystem sendet, werde ich erläutern, wie das System diese Informationen verarbeitet, welche Dienste bereitstellt gestellt werden und was es noch an Änderungen unter Windows 8 gibt.

Unterstützen einer Vielzahl von Druckern

Einer der großen Vorzüge von Windows für Apps ist, dass die App unabhängig vom spezifischen Drucker funktioniert – der Programmierer der App muss sich also nicht darum kümmern, welchen Drucker Sie installiert haben. Windows unterstützt mehrere zehntausend Druckermodelle, darunter Drucker, die von Treibern unterstützt werden, die über Windows Update oder die Herstellerwebsite erhältlich sind. Wenn Drucker nicht funktionieren, liegt das häufig daran, dass der Hersteller die Softwareinstallation blockiert, wenn die Windows-Version nicht erkannt wird, auf die ihre Software installiert werden soll. Wir arbeiten mit Druckerherstellern zusammen, um diese Pakete zu aktualisieren, das braucht jedoch Zeit.

Idealerweise funktioniert ein neuer Drucker sofort, wenn Sie ihn an Windows anschließen, ohne dass Sie sich erst um Treiber kümmern müssen.

Wie schaffen wir das? Früher haben wir viele Druckertreiber unter Windows vorinstalliert. Vista enthielt ungefähr 4.500 und Windows 7 etwa 2100 Treiber. Obwohl Windows 7 nur etwa halb so viele Treiber wie Vista bereitstellte, deckte es den Markt besser ab. Damit meine ich, dass mit höherer Wahrscheinlichkeit ein Treiber für die häufiger verwendeten Drucker vorhanden war. Woran liegt das? Die verwendeten Drucker sind unglaublich vielfältig. Unter Vista haben wir viele Geräte unterstützt, die schon alt waren und nicht mehr so häufig verwendet wurden. Die Relevanz der Auswahl an unterstützten Geräten war somit weniger gut als unter Windows 7.

Nebenbei: Wenn wir eine neue Windows-Version veröffentlichen, stellen wir die Treiber aus der Vorgängerversion auf Windows Update zur Verfügung. Auch wenn also die Verbreitung bestimmter Geräte abnimmt, können Kunden ihr Gerät immer noch automatisch in Betrieb nehmen, wenn sie es anschließen.

Das folgende Foto habe ich von einem Regal in einem unserer Druckerlabore (wir betreiben verschiedene) gemacht, in denen wir unsere Tests durchführen. Sie sehen verschiedene kleine Tintenstrahl- und Laserdrucker verschiedener Hersteller. Meine Ohren sind dankbar, dass wir heutzutage nur noch selten mit Nadeldruckern testen.

Testen von Druckern

Durchschnittlich verwenden Benutzer ihre Drucker 5 bis 7 Jahre lang. Wir müssen also beim Hinzufügen von Unterstützung überlegen, welche Geräte verwendet werden. Welches waren die beliebtesten Geräte in den letzten Jahren, und welche Geräte werden sich zukünftig verbreiten? Der letzte Teil ist kompliziert, da schon bald nach der Veröffentlichung von Windows die Hersteller Geräte auf den Markt bringen werden, von denen wir noch nichts wissen konnten. Das bedeutet, dass die Geräteauswahl, die wir in jeder einzelnen Windows-Version unterstützen, mit der Zeit veraltet.

Wir wissen, dass zu jedem beliebigen Zeitpunkt etwa 100 bestimmte Druckermodelle ungefähr 50 % der installierten Gesamtzahl bilden. Wenn wir 75 % der heute verwendeten Modelle unterstützen möchten, entspricht dies etwa 300 Modellen. Dies wird in folgendem Diagramm dargestellt.

Zur Marktabdeckung erforderliche Geräteanzahl

Um 95 % zu erzielen, müssten wir mehr als 1.000 Modelle unterstützen. Es wird aber noch schwieriger, da die Drucker, die diese Auswahl von 100, 300 oder 1.000 bilden, sich stets ändern. Die 100 Drucker, die heute 50 % des Marktes ausmachen, sind nicht dieselben 100 Drucker, die nächste Woche oder nächsten Monat 50 % repräsentieren – und schon gar nicht nächstes Jahr. Jeden Tag kaufen und installieren viele Benutzer neue Drucker.

Wie ich bereits erwähnt habe, wurde dieses Problem in der Vergangenheit mit einer Art Brute-Force-Methode gelöst. Partner der großen Druckerhersteller arbeiten direkt mit Microsoft in Büros in Redmond zusammen, um ihren Quellcode in Windows zu integrieren. Für jede neue Windows-Version haben sie einen völlig neuen Satz vorinstallierter Treiber produziert. Das ist nicht besonders effizient.

Unter Windows 8 haben wir einen völlig anderen Ansatz gewählt und nicht mehr unzählige Druckertreiber unter Windows vorinstalliert. Stattdessen haben wir ein Framework für Druckklassentreiber entwickelt. Dieses Framework ist erweiterbar, denn es unterstützt das Drucken mit vorhanden Geräten, ermöglicht den Herstellern jedoch auch, Unterstützung für neue Geräte zu integrieren – sogar für Geräte, die noch gar nicht entwickelt wurden.

Mit einem Framework für Druckklassentreiber nähern wir uns dem Ziel des treiberlosen Druckens. Statt sich also um einen Treiber kümmern zu müssen, kann der Drucker einfach mit dem Windows-Drucksystem verwendet werden. Ein tatsächlich treiberloser Druckvorgang erfordert Änderungen am Design der meisten Drucker, und das Framework für Druckklassentreiber unterstützt dieses Konzept. Es ist uns dennoch sehr wichtig, möglichst viel Unterstützung für vorhandene Geräte zu bieten.

Durch die Möglichkeit, neue und geplante Drucker zu unterstützen, wird die Anzahl der vom Framework für Druckklassentreiber von Windows 8 unterstützten Drucker im Laufe der Zeit sogar zunehmen.

Neben dem großen Fortschritt bezüglich der Steigerung der unterstützten Geräteanzahl konnten wir auch die für diese Unterstützung benötigten Ressourcen reduzieren.

Erstens haben wir den für die Unterstützung von Druckern und Bildverarbeitungsgeräten benötigten Festplattenspeicher von 768 MB unter Windows Vista auf etwa 184 MB unter Windows 8 reduziert.

Benötigter Festplattenspeicher für die Unterstützung von Druckern und Bildverarbeitung

Vergleich des benötigten Festplattenspeichers für die Unterstützung von Druckern und Bildverarbeitungsgeräten unter Windows 8, Windows 7 und Windows Vista

Zweitens wurde die Reduzierung des benötigten Speicherplatzes von einem Anstieg der Relevanz der direkt von Windows unterstützten Geräte begleitet. In der folgenden Tabelle ist die zunehmende Relevanz der mitgelieferten Treiber bei abnehmendem Speicherplatzbedarf dargestellt.

 

Ungefähre Anzahl der durch mitgelieferte Treiber unterstützten Geräte

Ungefährer Prozentsatz der Abdeckung verwendeter Geräte

Benötigter Speicherplatz

Windows Vista

4200

55-60%

768 MB

Windows 7

2100

60-65%

446 MB

Windows 8

2500

70 % bei Veröffentlichung, mit Anstieg auf 80 %

184 MB

Dies ist eine enorme Verbesserung unter Windows 8. Dieser verringerte Speicherplatzbedarf stellt Benutzern von Hardware mit beschränkter Speicherkapazität – wie sie für einige Windows RT-Computer typisch sein wird – unmittelbar mehr Speicherplatz zur Verfügung.

Dank des Windows 8-Druckertreibermodells können sich unsere Partnerhersteller außerdem auf einen Codesatz konzentrieren, der sich zwischen den einzelnen Windows-Versionen nur noch wenig ändern wird. So können wir mehr Ressourcen für die Steigerung von Qualität und Leistung einsetzen, anstatt uns um die stetige Aktualisierung des Treibersatzes kümmern zu müssen.

Druckklassentreiber-Architektur

Wir wollten nicht nur eine Architektur entwickeln, die die Bedürfnisse von Windows RT und Apps im Metro-Stil unterstützt. Wir wollten auch sicherstellen, dass das Modell mit vorhandenen Geräten funktioniert und Technologien verwendet, mit denen die Druckerhersteller vertraut sind, sodass sie die neue Treibertechnologie problemlos implementieren können.

Ein Druckertreiber hat verschiedene wichtige Aufgaben:

  • Die Konfiguration ermöglicht dem Benutzer die Änderung der Einstellungen, indem sie z. B. den Wunsch, doppelseitig zu drucken, in den entsprechenden Befehl umwandelt, den der Drucker dazu benötigt. Die Konfiguration wird dem Benutzer über die Benutzeroberfläche angezeigt.
  • Das Rendering übersetzt den gedruckten Inhalt aus dem vom Windows-Drucksystem verwendeten Format in das vom Drucker verstandene Format. In einigen Fällen versteht der Drucker auch direkt das systemeigene Windows-Druckformat (XPS), sodass diesen Geräte nur dann Aufwand entsteht, wenn zusätzliches Rendering durchgeführt werden soll (z. B. Drucken von mehreren Dokumentseiten auf eine Seite Papier). Die Treiberkomponente, die das Rendering durchführt, heißt Renderingfilter.
  • Ereignisse ermöglichen dem Drucker, den Benutzer über verschiedene Vorfälle zu informieren: Eine Aufgabe wurde abgeschlossen, ein Papierstau liegt vor, oder der Drucker hat keine Tinte mehr.

Benutzeroberfläche für die Konfiguration

Ein großer Unterschied zwischen dem alten Treibermodell und dem Windows 8-Treibermodell liegt in der Bereitstellung der Benutzeroberfläche. Beim alten Druckertreibermodell war die Benutzeroberfläche für die Konfiguration in den Treiber integriert. Hier sehen Sie ein Beispiel für eine typische Drucker-Benutzeroberfläche. (Das Beispiel stammt aus dem Epson NX430, der auf meinem Schreibtisch steht.)

Dialogfeld für die Druckeinstellungen der Epson NX430-Serie mit Optionen für Druckqualität, Papier, Tintenstände, Ausrichtung usw.

Wie ich bereits erwähnt habe, mussten wir einen Weg finden, die Benutzeroberfläche im Metro-Stil anzuzeigen, wenn Benutzer die Druckeinstellungen ändern möchten.

Im Windows 8-Treibermodell ist die Benutzeroberfläche des Herstellers vollständig von seinem Treiber getrennt. Aus vielen Gründen ist dies eine viel bessere Architektur: Die Benutzeroberfläche zur Druckersteuerung ist jetzt eine App, die beim Drucken über Apps im Metro-Stil oder über Desktop-Apps aufgerufen werden kann. So können Druckerhersteller Ihnen umfassendere Optionen bieten – z. B. Zugriff auf ein Video, das die Einrichtung des Druckers oder das Einsetzen einer Druckerpatrone erläutert.

Das folgende Beispiel zeigt eine App im Metro-Stil, die Epson für den Epson NX430 entwickelt hat:

Vollbild-App im Metro-Stil mit Optionen für Tintenstände, Papiertyp, Epson-Showcase und Kurzanleitung

Wie Sie sehen, verfügt diese Benutzeroberfläche über alle Qualitäten einer App im Metro-Stil, ist jedoch für Ihren Drucker entwickelt. Sie bietet eine ansprechende Ansicht der Tintenstände des Druckers und ist besonders auf Geräten mit Touchscreen wesentlich einfacher zu bedienen.

Windows zeigt Ihnen automatisch die korrekte Benutzeroberfläche: die Desktop-Benutzeroberfläche, wenn Sie über Desktop-Apps drucken, und die Metro-Stil-Benutzeroberfläche, wenn Sie über Apps im Metro-Stil drucken.

Wenn der Hersteller keine Benutzeroberfläche für die Konfiguration seines Geräts mitgeliefert hat, bietet Windows eine Standard-Benutzeroberfläche, die Sie für jeden Drucker verwenden können. Wenn sich der Druckerhersteller doch entschließt, sein Gerät mit einer maßgeschneiderten Benutzeroberfläche auszustatten, kann er eine App bereitstellen, die die Standard-Benutzeroberfläche von Windows ersetzt. Wenn Sie dann beschließen, die Gerätekonfiguration zu ändern, oder wenn die Gerätekonfiguration sich während des Druckens ändert (z. B. bei Papierstau), zeigt Windows nun die benutzerdefinierte App des Herstellers an.

Rendering

Eine der wichtigsten Funktionen eines Druckertreibers besteht darin, die von einer App beim Druckbefehl produzierten Inhalte so umzuwandeln, dass der Drucker sie versteht. Dies war bei der Entwicklung des Windows 8-Druckklassentreibers einer der komplexesten Bereiche, den wir uns daher etwas genauer ansehen wollen.

Wie bereits erläutert, verwenden Desktop-Apps wie Word oder Photoshop Grafikbefehle, um ihren Inhalt auf dem Bildschirm oder Drucker zu zeichnen. Dabei empfängt das Drucksystem den Inhalt, wandelt ihn ggf. in XPS um und ruft dann den Druckertreiber (genauer: den Renderingfilter des Treibers) auf, um den Inhalt in das richtige Format umzuwandeln. Dieser wird dann an den Drucker gesendet, und Ihre Datei wird gedruckt.

Das Rendering ist wahrscheinlich eine der größten Herausforderungen bei der Unterstützung einer großen Druckervielfalt. Einige der teureren Drucker unterstützen Standard-Seitenbeschreibungssprachen (PDLs) wie PostScript, PCL und XPS. Weniger teure, endkundenorientierte Geräte werden jedoch kostensparend hergestellt. Viele dieser Geräte unterstützen firmeneigene Methoden zur Übermittlung der Seiteninformationen an den Drucker. Einige Hersteller verwenden für ihr gesamtes Produktsortiment nur wenige Sprachen, während andere sie für jedes Gerät anpassen, um optimale Leistung mit ihrer Druckerhardware zu erzielen.

Das führt zu einer 1:1-Zuordnung zwischen Druckertreiber und Druckerhardware.

PDL1 wird Fabrikam 1000-Drucker zugeordnet, PDL2 wird Fabrikam 2000-Drucker zugeordnet, PDL3 wird Fabrikam 2010-Drucker zugeordnet.

Wenn Sie sich jede PDL als vollständigen Druckertreiber vorstellen, wird deutlich, dass eine zunehmende Unterstützung eine stetig zunehmende Anzahl von Treibern bedeutet. Das ist natürlich ein wenig vereinfacht dargestellt, und es ist möglich, einen Treiber zu entwickeln, der eine Reihe von Geräten unterstützt. Es gibt sogar häufig Treiber, die eine Druckerserie unterstützen. Der entscheidende Punkt ist hier jedoch, dass unter Windows 7 und früheren Windows-Versionen dieser Designansatz nicht unterstützt wurde.

Das Druckertreibermodell unter Windows 8 verfolgt das Konzept, dass eine PDL (oder ein Treiber) mit mehreren Geräten verknüpft werden kann.

PDL X kann 3 unterschiedlichen Druckern zugeordnet werden.

Wir haben mit unseren Partnern in der Druckerherstellung daran gearbeitet, dass die Geräte einen Bezeichner enthalten, der beschreibt, wie sie generischer unterstützt werden können. Wir nennen dies eine kompatible ID. Hat beispielsweise ein Gerät eine kompatible ID, die besagt, dass es XPS unterstützt, weiß das Drucksystem, dass es keinen modellspezifischen Treiber für dieses Gerät suchen muss. Es kann stattdessen einfach einen generischen XPS-Treiber installieren. Windows weiß, dass das Gerät ein generischer XPS-Drucker ist und kann es entsprechend behandeln. Selbstverständlich weiß Windows auch, dass es sich z. B. um einen Fabrikam 1000-Drucker handelt – wenn ein modellspezifischer Treiber vorhanden ist, wird Windows diesen installieren. Sollte aber kein Treiber verfügbar sein, kann Windows dank des Klassentreibers trotzdem mit dem Drucker drucken.

In diesem Beispiel haben wir also einen Satz im Klassentreibermodell mitgelieferter Renderingfilter, die für jedes Gerät mit entsprechender kompatibler ID installiert werden können. Die logische Erweiterung dieses Konzepts besteht in der Möglichkeit, dass künftige Geräte, die noch gar nicht entworfen oder hergestellt werden, mit dem Druckklassentreiber unter Windows 8 kompatibel sind. Wir kooperieren mit den Druckerherstellern: Sie alle planen, kompatible IDs in ihren Geräten zu implementieren (viele tun das bereits). Aufgrund dieser Funktion wird die Anzahl der von Windows 8 unterstützten Drucker im Laufe der Zeit zu- statt abnehmen. Das heißt, dass immer mehr Benutzer ihre Drucker unter Windows unmittelbar verwenden können, ohne sich erst um einen Treiber kümmern zu müssen.

Aber wie sieht es mit all den Geräten mit firmeneigener Rendering-Sprache aus? Der Druckklassentreiber unterstützt auch dieses Modell, jedoch mit dem Nachteil, dass wir einen separaten Renderingfilter für jeden kleinen Satz von Modellen benötigen, die jeweils eine eigene Sprache sprechen. Das lässt sich nicht umgehen, und wir haben eine Anzahl von Filtern für eine Reihe beliebter Modelle unter Windows 8 implementiert. Auch hier arbeiten wir jedoch mit den Druckerherstellern zusammen an Verbesserungen. Wir gehen davon aus, dass die Hersteller künftig Drucker herstellen, die den Klassentreiber besser verwenden können.

Drucken über Windows RT

Die Reduzierung der vom Druckklassentreiber beanspruchten Ressourcen trägt direkt zu einer geringeren Ressourcenauslastung unter Windows bei, die besonders unter Windows RT von Bedeutung ist. Zudem war die v3-Druckertreiberarchitektur erweiterbar und entwickelte sich über viele Jahre zu einem Modell, das die Entwicklung großer und komplexer Druckertreiber begünstigte. Verschiedene Treiber installieren Dienste, die permanent ausgeführt werden und so Akkuleistung und Prozessorzeit beanspruchen. Ich habe Treiber gesehen, die nur ein einziges Gerät unterstützen, jedoch größer als der gesamte Druckertreibersatz unter Windows 8 sind!

Die Notwendigkeit, das Drucken unter Windows RT zu unterstützen, und der allgemeine Anspruch, das Drucken effizienter zu gestalten, führten uns zur Entwicklung einer Architektur, die den Treiber stärker steuert. Ich habe bereits erwähnt, dass jetzt der zum Drucken verwendete Teil der Benutzeroberfläche eine vollständig getrennte Komponente ist: keine Treiberkomponente mehr, sondern eine App. Das bedeutet, dass sie auch optional ist und dass die Treiber mit der Standard-Benutzeroberfläche für das Drucken von Microsoft gut funktionieren. Wir haben außerdem die Treiberarchitektur so vereinfacht, dass sie energieeffizienter arbeitet. Dazu wurden Dienstabhängigkeiten entfernt und die Wahrscheinlichkeit verringert, dass zusätzliche Software in den Treiber integriert wird.

Mit dem Windows 8-Treibermodell haben wir auch wesentliche Änderungen an der Art und Weise vorgenommen, wie Druckertreiber installiert werden. Unter Windows 7 und früheren Windows-Versionen werden alle Druckertreiber im „Treiberspeicher“ gespeichert, einer Art Datenbank für alle Treibertypen. Wenn Sie einen Drucker angeschlossen haben, wurde der richtige Treiber im Treiberspeicher gesucht und an einen speziellen Ort kopiert, wo der Spooler ihn für Ihren Drucker verwenden konnte. Unter Windows 8 haben wir diesen Kopiervorgang abgeschafft und damit einige Datenträger-E/A-Vorgänge beseitigt. Der Druckspooler weiß jetzt einfach, wie er den Treiber im Treiberspeicher findet.

Um ein realistisches Beispiel zu geben, haben wir die Installationszeiten für einen Epson Artisan unter Windows 7 und unter Windows 8 verglichen (dabei haben wir unter Windows 7 einen verhältnismäßig kleinen Treiber verwendet): Die Installationszeit unter Windows 7 betrug 14 Sekunden, unter Windows 8 nur 2 Sekunden.

Schlussgedanken

Wie Sie sehen, stellt die Windows 8-Druckertreiberarchitektur eine beträchtliche Weiterentwicklung dar. Sie bietet gute Unterstützung für zahlreiche bereits vorhandene Drucker, und unterstützt außerdem künftige Geräte dank eines kleinen, schnellen integrierten Frameworks für Klassentreiber. Die Leistung ist hervorragend, und das bei geringer Festplattennutzung.

Wir freuen uns auf Ihr Feedback!

– Adrian Lannin