Printerless-Modus: Auswirkungen und Optionen bei der Ausgabe von Texten

Bis Version 27 benötigte List & Label für seine Ausgaben (Druck und Export) immer einen installierten Druckertreiber als sogenannten Device-Context, um die Ausgaben durchführen zu können. Wir haben den Hintergrund dazu bereits im Artikel Wieso benötigt List & Label zwingend einen Druckertreiber? näher beleuchtet. Doch seit der Version 27 von List & Label ist diese Systemabhängigkeit nicht mehr zwingend erforderlich. Dies ermöglicht auch neue Einsatzbereiche - siehe Neuer Printerless-Modus in List & Label 27.

Doch was kann beim Einsatz des Printerless-Modus erwartet werden und was ist dabei unter Umständen konkret zu beachten? Im Folgenden werden dazu ein paar technische Hintergrundinformationen und Tipps bereitgestellt.

Auflösung des verwendeten Device-Contexts

Im “normalen” Modus verwendet List & Label den eingestellten Druckertreiber mit dessen Auflösung als Device-Context, der für die Positionierung von Zeichen/Texten eingesetzt wird. In der Regel haben die verwendeten Treiber eine Auflösung >= 600 DPI. Beim Printerless-Modus ist es nun aber so, dass kein Druckertreiber zur Verfügung steht (siehe bspw. Docker-Umgebung) und somit der Device-Context für List & Label der Bildschirm (Screen-DC) ist. Doch dieser Screen-DC besitzt eine viel gröbere Auflösung von 96 DPI - teils auch nur 72 DPI. Da die Auflösung von Windows vorgegeben ist, kann sie nicht durch List & Label beeinflusst werden. Damit ergibt sich im Printerless-Modus eine gröbere Auflösung, die Einfluss auf die Positionierung von Zeichen/Texten hat.

Verwendete Schriftarten

Ein weiterer wichtiger Punkt beim Printerless-Modus ist auch, dass bei der Verwendung des Screen-DCs abweichende Font-Metriken (Unterlängen, Höhen etc.) von Windows an List & Label zurückgeliefert werden - und das für den identischen Font. Dadurch ergeben sich leichte Abweichungen bei der Positionierung. Zahlreiche Tests haben ergeben, dass sich hierbei die Fonts untereinander auch sehr stark unterscheiden können. Auch die Einstellungen im Font selbst wie bspw. Weight (also die Dicke des Fonts - meist “Fett”) oder auch die Punktgröße sind hierbei Faktoren, die zu Abweichungen führen können - je kleiner der Font in der Punktgröße eingestellt ist, umso größer die möglichen Abweichungen bei der Positionierung/Ausgabe der Zeichen.
Generelle Empfehlungen für den einen oder anderen Font können leider keine gegeben werden, es kommt auch immer auf die Verwendung im vorliegenden Bericht an. Gute Ergebnisse haben wir in Tests mit Tahoma oder auch Verdana bei einer eingestellten Option LL_OPTION_VIRTUALDEVICE_SCALINGOPTIONS von 600 erzielt. Die Darstellung kann aber weiterhin nicht frei von Abweichungen im direkten Vergleich mit dem Druckertreiber-Rendering von List & Label mit bspw. dem Microsoft XPS Document Writer sein.

Objekte für Text-Ausgaben: Einfaches Textobjekt vs. Formatiertes Textobjekt (RTF)

In List & Label Berichten können neben einfachenTextobjekten mit einzelnen Absätzen auch formatierte Textobjekte (RTF) verwendet werden. Doch die Auswirkungen auf die Textausgaben im Printerless-Modus sind teils unterschiedlich.

Einfache Textobjekte

Bei den einfachen Textobjekten kann List & Label technisch nur bedingt auf das Rendering Einfluss nehmen. Zur Steuerung aus Sicht der jeweiligen Anwendung kann hierfür die bereits erwähnte Skalierungsoption LL_OPTION_VIRTUALDEVICE_SCALINGOPTIONS eingesetzt werden. Aber auch der Einsatz von anders skalierenden Schriftarten bei gröberer Auflösung/DPI kann sich positiv auf die Positionierung auswirken.

Formatierte Textobjekte (RTF)

Die formatierten Textobjekte (RTF) nehmen insbesondere beim Printerless-Modus eine Sonderstellung ein, da List & Label selbst technisch keinen Einfluss auf das Rendering und die Skalierung der Texte hat. Hintergrund ist, dass List & Label immer das auf dem darunterliegenden Windows-System vorhandene RTF-Control von Microsoft setzt und dieses für das Rendering verwendet. Was hier im Detail mit den Texten und der Skalierung der eingesetzten Schriftarten bei Einsatz des gröberen Screen-DCs im Printerless-Modus passiert, kann List & Label nicht weiter beeinflussen. Einzig beeinflussbar ist die eingesetzte Version des verwendeten RTF-Controls von Microsoft, das List & Label laden und für das Rendering der Texte verwenden soll - siehe weitere Details auch im Artikel Hinweise zum RTF-Objekt.

Allgemein kann zu den Schriftarten jedoch gesagt werden, dass insbesondere die Laufweiten zwischen den einzelnen Zeichen bereits durch bestimmte Schriftarten positiv beeinflusst werden können und somit das Schriftbild insgesamt verbessert wird. Der Font Arial Unicode MS eignet sich für formatierte Textobjekte (RTF) im Printerless-Modus nur bedingt, da die Laufweiten sehr weit auseinandergezogen werden können, insbesondere im Fett-Modus. Auch hier sind Verdana oder auch Tahoma in Bezug auf die Anzeige deutlich besser geeignet im direkten Vergleich.

Aufgrund der erwähnten technischen Herausforderungen und Unterschiede der Textdarstellungen ist es daher immer erforderlich - insbesondere bei bereits bestehenden Berichten mit gewohntem und gewünschten Erscheinungsbild - im Rahmen einer Umstellung auf den Printerless-Modus, Prüfungen durchzuführen und ggf. Anpassungen der Layouts im Designer (siehe Verwendete Schriftarten) oder auch der bereitgestellten Skalierungsoptionen (siehe auch LL_OPTION_VIRTUALDEVICE_SCALINGOPTIONS) vorzusehen.