Direkt auf Drucker drucken

Bei einer Abfrage, die häufig in den verschiedenen Javascript-Foren auftritt, wird gefragt, wie die Seite direkt an den Drucker gesendet werden soll, ohne dass zuerst das Dialogfeld zum Drucken angezeigt wird.

Anstatt dir das nur zu sagen das geht nicht Vielleicht wäre eine Erklärung, warum eine solche Option nicht möglich ist, nützlicher.

Welches Druckdialogfeld angezeigt wird, wenn jemand die Drucktaste in seinem Browser oder in Javascript drückt window.print () Die Ausführung der Methode hängt vom Betriebssystem und den auf dem Computer installierten Druckern ab.

Da die meisten Benutzer Windows auf ihrem Computer ausführen, beschreiben wir zunächst, wie die Druckeinrichtung auf diesem Betriebssystem funktioniert. Die Betriebssysteme * nix und Mac unterscheiden sich geringfügig in den Details, sind jedoch insgesamt ähnlich aufgebaut.

Dialogfeld "Drucken"

Das Dialogfeld "Drucken" unter Windows besteht aus zwei Teilen. Die erste davon ist Teil der Windows-API (Application Programming Interface). Die API besteht aus einer Reihe allgemeiner Codeteile, die in den verschiedenen DLL-Dateien (Dynamic Link Library) enthalten sind, die Teil des Windows-Betriebssystems sind. Jedes Windows-Programm kann (und sollte) die API aufrufen, um allgemeine Funktionen wie das Anzeigen des Dialogfelds "Drucken" auszuführen, damit es in allen Programmen auf die gleiche Weise funktioniert und nicht an verschiedenen Stellen unterschiedliche Optionen hat, wie dies bei der Druckoption unter DOS der Fall war Programmtage. Die Print Dialog API bietet auch eine gemeinsame Schnittstelle, über die alle Programme auf die gleichen Druckertreiber zugreifen können, anstatt dass die Druckerhersteller für jedes einzelne Programm, das sie verwenden möchte, Treibersoftware für ihren Drucker erstellen müssen.

Die Druckertreiber sind die andere Hälfte des Druckdialogs. Verschiedene Drucker verstehen verschiedene Sprachen, mit denen sie steuern, wie die Seite gedruckt wird (z. B. PCL5 und Postscript). Der Druckertreiber weist die Druck-API an, wie das interne Standarddruckformat, das das Betriebssystem versteht, in die benutzerdefinierte Auszeichnungssprache zu übersetzen ist, die der jeweilige Drucker versteht. Außerdem werden die im Dialogfeld "Drucken" angezeigten Optionen angepasst, um die vom jeweiligen Drucker angebotenen Optionen widerzuspiegeln.

Bedienung des Druckers

Auf einem einzelnen Computer sind möglicherweise keine Drucker installiert, ein lokaler Drucker ist möglicherweise vorhanden, auf mehrere Drucker kann über ein Netzwerk zugegriffen werden, und es kann sogar eine Druckfunktion für PDF-Dateien oder vorformatierte Druckdateien eingerichtet werden. Wenn mehr als ein "Drucker" definiert ist, wird einer von ihnen als Standarddrucker festgelegt. Dies bedeutet, dass er die Details im Druckdialog anzeigt, wenn er zum ersten Mal angezeigt wird.

Das Betriebssystem verfolgt den Standarddrucker und identifiziert diesen Drucker für die verschiedenen Programme auf dem Computer. Auf diese Weise können die Programme einen zusätzlichen Parameter an die Druck-API übergeben, der angibt, dass direkt auf dem Standarddrucker gedruckt werden soll, ohne dass zuerst das Druckdialogfeld angezeigt wird. Viele Programme haben zwei verschiedene Druckoptionen - einen Menüeintrag, der das Druckdialogfeld anzeigt, und eine Symbolleistenschaltfläche zum schnellen Drucken, die direkt an den Standarddrucker gesendet wird.

Wenn Sie eine Webseite im Internet haben, die Ihre Besucher drucken werden, haben Sie so gut wie keine Informationen darüber, welche Drucker verfügbar sind. Die meisten Drucker auf der Welt sind so konfiguriert, dass sie auf A4-Papier drucken. Sie können jedoch nicht garantieren, dass der Drucker auf diese Standardeinstellung eingestellt ist. In einem nordamerikanischen Land wird ein nicht standardmäßiges Papierformat verwendet, das kürzer und breiter als A4 ist. Die meisten Drucker sind so eingerichtet, dass sie im Hochformat drucken (wobei die schmalere Richtung die Breite ist, einige jedoch möglicherweise auf die Landschaft eingestellt sind, in der die längere Dimension die Breite ist. Natürlich hat jeder Drucker oben auch andere Standardränder , unten und an den Seiten der Seite, noch bevor die Eigentümer alle Einstellungen vornehmen, um den Drucker so zu gestalten, wie sie es möchten.

Angesichts all dieser Faktoren können Sie nicht feststellen, ob der Standarddrucker mit seiner Standardkonfiguration Ihre Webseite auf A3 mit vernachlässigbaren Rändern oder auf A5 mit großen Rändern druckt (wobei in der Mitte nur ein Bereich mit Briefmarkengröße verbleibt) der Seite). Sie können wahrscheinlich davon ausgehen, dass die meisten Seiten eine Druckfläche von ca. 16 x 25 cm haben (plus oder minus 80%)..

Druckanforderungen

Da sich die Drucker zwischen Ihren potenziellen Besuchern so stark unterscheiden (hat jemand Laserdrucker, Tintenstrahldrucker, Farb- oder Schwarzweißdrucker, Fotoqualität, Entwurfsmodus und vieles mehr erwähnt), können Sie nicht sagen, was sie zum Drucken tun müssen Ihre Seite in einem vernünftigen Format. Vielleicht haben sie einen separaten Drucker oder einen zweiten Treiber für denselben Drucker, der ganz andere Einstellungen speziell für Webseiten bietet.

Als nächstes kommt die Frage, was sie drucken möchten. Möchten sie die gesamte Seite oder haben sie nur einen Teil der Seite ausgewählt, die sie drucken möchten? Wenn Ihre Site Frames verwendet, möchten sie alle Frames so drucken, wie sie auf der Seite angezeigt werden, möchten sie jeden Frame einzeln drucken oder möchten sie nur einen bestimmten Frame drucken?

Die Notwendigkeit, all diese Fragen zu beantworten, macht es so gut wie unerlässlich, dass der Druckdialog immer dann angezeigt wird, wenn sie etwas drucken möchten, damit sie sicherstellen können, dass alle Einstellungen korrekt sind, bevor sie auf die Schaltfläche "Drucken" klicken. Die meisten Browser bieten auch die Möglichkeit, einer der Browser-Symbolleisten eine Schaltfläche zum schnellen Drucken hinzuzufügen, damit die Seite mit den Standardbrowsereinstellungen auf dem Standarddrucker gedruckt werden kann. Dabei wird festgelegt, was und wie gedruckt werden soll.

Javascript

Browser stellen Javascript diese Vielzahl von Browser- und Druckereinstellungen nicht zur Verfügung. Javascript befasst sich in erster Linie mit der Änderung der aktuellen Webseite, sodass Webbrowser nur minimale Informationen über den Browser selbst und kaum Informationen über das für Javascript verfügbare Betriebssystem bereitstellen, da Javascript diese Dinge nicht wissen muss, um diese Dinge auszuführen, die Javascript ist beabsichtigt zu tun.

Grundlegende Sicherheit besagt, dass, wenn etwas wie Javascript nicht über das Betriebssystem und die Browserkonfiguration Bescheid wissen muss, um die Webseite zu manipulieren, es nicht mit diesen Informationen versorgt werden sollte. Es ist nicht so, dass Javascript in der Lage sein sollte, die Druckereinstellungen auf die entsprechenden Werte zum Drucken der aktuellen Seite zu ändern, da Javascript nicht dafür vorgesehen ist - das ist der Job des Druckdialogs. Browser stellen Javascript daher nur die Dinge zur Verfügung, die Javascript wissen muss, wie die Größe des Bildschirms, der verfügbare Platz im Browserfenster, um die Seite anzuzeigen, und ähnliche Dinge, die Javascript dabei helfen, das Layout der Seite zu bestimmen. Die aktuelle Webseite ist das einzige Anliegen von Javascript.

Intranets

Intranets sind natürlich eine ganz andere Sache. Mit einem Intranet wissen Sie, dass jeder, der auf die Seite zugreift, einen bestimmten Browser (normalerweise eine neuere Version von Internet Explorer) verwendet und über eine bestimmte Bildschirmauflösung und Zugriff auf bestimmte Drucker verfügt. Dies bedeutet, dass es in einem Intranet sinnvoll ist, direkt auf dem Drucker zu drucken, ohne dass der Druckdialog angezeigt wird, da die Person, die die Webseite erstellt, weiß, auf welchem ​​Drucker sie gedruckt wird.

Der Internet Explorer-Ersatz für Javascript (JScript genannt) enthält daher etwas mehr Informationen über den Browser und das Betriebssystem, die Javascript selbst ausführt. Die einzelnen Computer im Netzwerk, auf denen das Intranet ausgeführt wird, können möglicherweise so konfiguriert werden, dass JScript zugelassen wird window.print () Befehl direkt auf den Drucker schreiben, ohne den Druckdialog anzuzeigen. Diese Konfiguration müsste auf jedem Client-Computer einzeln eingerichtet werden und würde den Rahmen eines Artikels über Javascript sprengen.

Wenn es um Webseiten im Internet geht, gibt es absolut keine Möglichkeit, einen Javascript-Befehl einzurichten, der direkt an den Standarddrucker gesendet wird. Wenn Ihre Besucher dies wünschen, müssen sie in ihrer Browser-Symbolleiste eine eigene Schaltfläche "Schnelldruck" einrichten.