Eine Abfrage, die in den verschiedenen Javascript-Foren häufig vorkommt, fragt, wie die Seite direkt an den Drucker gesendet werden soll, ohne dass zuvor die Seite angezeigt wird Dialogfeld drucken.
Anstatt dir das nur zu sagen es kann nicht gemacht werden Vielleicht wäre eine Erklärung, warum eine solche Option nicht möglich ist, nützlicher.
Welches Druckdialogfeld wird angezeigt, wenn jemand die Taste drückt Drucktaste in ihrem Browser oder dem Javascript 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 das Drucksetup auf diesem Betriebssystem funktioniert. Die Betriebssysteme * nix und Mac unterscheiden sich geringfügig in den Details, sind jedoch insgesamt ähnlich eingerichtet.
Dialogfeld "Drucken"
Das Druckdialogfeld 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 DLLs enthalten sind (
Dynamische Link Bibliothek) Dateien, die Teil von Windows sind Betriebssystem. Jedes Windows-Programm kann (und sollte) die API aufrufen, um allgemeine Funktionen auszuführen, z. B. das Anzeigen des Dialogfelds "Drucken" Arbeiten Sie in allen Programmen auf die gleiche Weise und haben Sie an verschiedenen Stellen keine unterschiedlichen Optionen wie bei der Druckoption im DOS-Programm Tage. Die Druckdialog-API bietet auch eine gemeinsame Schnittstelle, über die alle Programme auf denselben Druckertreibersatz zugreifen können als Druckerhersteller, die für jedes einzelne Programm, das sie verwenden möchten, Treibersoftware für ihren Drucker erstellen müssen es.Die Druckertreiber sind die andere Hälfte des Druckdialogs. Es gibt verschiedene Sprachen, die verschiedene Drucker verstehen, um zu steuern, wie die Seite gedruckt wird (z. PCL5 und Postscript). Der Druckertreiber weist die Druck-API an, wie das interne Standarddruckformat übersetzt werden soll dass das Betriebssystem die benutzerdefinierte Auszeichnungssprache des jeweiligen Druckers versteht versteht. Außerdem werden die im Dialogfeld "Drucken" angezeigten Optionen an die vom jeweiligen Drucker angebotenen Optionen angepasst.
Drucker bedienen
Auf einem einzelnen Computer sind möglicherweise keine Drucker installiert. Möglicherweise ist ein lokaler Drucker vorhanden Der Zugriff auf mehrere Drucker über ein Netzwerk kann sogar so eingerichtet sein, dass er als PDF oder vorformatierter Druck gedruckt werden kann Datei. Wenn mehr als ein "Drucker" definiert ist, wird einer von ihnen als Standarddrucker bezeichnet. Dies bedeutet, dass derjenige seine Details im Druckdialog anzeigt, wenn er zum ersten Mal angezeigt wird.
Das Betriebssystem verfolgt den Standarddrucker und identifiziert diesen Drucker anhand der verschiedenen Programme auf dem Computer. Auf diese Weise können die Programme einen zusätzlichen Parameter an die Druck-API übergeben, der sie anweist, direkt auf dem Standarddrucker zu drucken, ohne zuerst den Druckdialog anzuzeigen. Viele Programme verfügen über zwei verschiedene Druckoptionen - einen Menüeintrag, der den Druckdialog anzeigt, und eine Schaltfläche zum schnellen Drucken in der Symbolleiste, 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 sie zur Verfügung haben. Die meisten Drucker auf der ganzen Welt sind so konfiguriert, dass sie auf A4-Papier gedruckt werden. 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 für den Ausdruck im Hochformat eingerichtet (wobei die engere Richtung die Breite ist, einige können jedoch auf die Landschaft eingestellt sein, in der die Breite die längere Abmessung ist. Natürlich hat jeder Drucker oben, unten und an den Seiten des Druckers unterschiedliche Standardränder Seite noch bevor die Besitzer hineingehen und alle Einstellungen ändern, um den Drucker so zu machen, wie sie sind wollen.
Angesichts all dieser Faktoren können Sie nicht feststellen, ob der Standarddrucker mit seiner Standardkonfiguration Ihr Web druckt Seite auf A3 mit vernachlässigbaren Rändern oder auf A5 mit großen Rändern (kaum mehr als ein Bereich in Briefmarkengröße in der Mitte des Seite). Sie können wahrscheinlich davon ausgehen, dass die meisten einen Druckbereich auf der Seite von ungefähr 16 cm x 25 cm haben (plus oder minus 80%).
Druckanforderungen
Da die Drucker zwischen Ihren potenziellen Besuchern sehr unterschiedlich sind (hat jemand Laserdrucker, Tintenstrahldrucker, Farbe oder Schwarzweiß erwähnt? Nur Fotoqualität, Entwurfsmodus und vieles mehr) Sie können nicht sagen, was sie tun müssen, um Ihre Seite in einem angemessenen Format auszudrucken Format. Vielleicht haben sie einen separaten Drucker oder einen zweiten Treiber für denselben Drucker, der völlig unterschiedliche Einstellungen speziell für Webseiten bietet.
Als nächstes kommt die Frage, was sie drucken möchten. Wollen sie die ganze 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 fast unerlässlich, dass der Druckdialog immer dann angezeigt wird, wenn sie angezeigt werden Sie möchten etwas drucken, damit sie sicherstellen können, dass alle Einstellungen korrekt sind, bevor sie auf den Druck klicken Taste. Die meisten Browser bieten auch die Möglichkeit, einer der Browser-Symbolleisten eine Schaltfläche zum schnellen Drucken hinzuzufügen, um dies zu ermöglichen Die Seite, die auf dem Standarddrucker gedruckt werden soll, verwendet die Standard-Browsereinstellungen für das, was gedruckt werden soll, und Wie.
Javascript
Browser stellen Javascript diese Vielzahl von Browser- und Druckereinstellungen nicht zur Verfügung. Javascript befasst sich hauptsächlich mit der Änderung des Stroms Website und so bieten Webbrowser nur minimale Informationen über den Browser selbst und so gut wie keine Informationen über das Betriebssystem, die für verfügbar sind Javascript weil Javascript diese Dinge nicht wissen muss, um die Dinge auszuführen, für die Javascript vorgesehen ist.
Grundlegende Sicherheit besagt, dass wenn etwas wie Javascript nicht über das Betriebssystem und wissen muss Browserkonfiguration, um die Webseite zu manipulieren, sollte sie nicht damit versehen werden Information. Es ist nicht so, dass Javascript in der Lage sein sollte, die Druckereinstellungen auf die entsprechenden Werte für zu ändern Drucken der aktuellen Seite, da dies nicht der Zweck von Javascript ist - das ist die Aufgabe des Drucks Dialog. Browser stellen Javascript daher nur die Dinge zur Verfügung, die Javascript wissen muss, wie z. B. die Größe des Bildschirms verfügbarer Speicherplatz im Browserfenster um die Seite anzuzeigen, und ähnliche Dinge, die Javascript dabei helfen, herauszufinden, wie die Seite aufgebaut ist. 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 Zugriff auf die Seite verwendet einen bestimmten Browser (normalerweise eine neuere Version von Internet Explorer) und verfügt über eine bestimmte Bildschirmauflösung und Zugriff auf bestimmte Drucker. Dies bedeutet, dass es in einem Intranet sinnvoll ist, ohne direkt auf dem Drucker drucken zu können Anzeigen des Druckdialogs, da die Person, die die Webseite schreibt, weiß, um welchen Drucker es sich handelt gedruckt auf.
Der Internet Explorer-Ersatz für Javascript (JScript genannt) enthält daher etwas mehr Informationen über den Browser und das Betriebssystem als Javascript. Die einzelnen Computer im Netzwerk, auf denen das Intranet ausgeführt wird, können möglicherweise so konfiguriert werden, dass JScript zulässig ist window.print () Befehl Schreiben Sie direkt auf den Drucker, ohne den Druckdialog anzuzeigen. Diese Konfiguration müsste auf jedem Client-Computer einzeln eingerichtet werden und geht weit über den Rahmen eines Artikels über Javascript hinaus.
Wenn es um Webseiten im Internet geht, gibt es absolut keine Möglichkeit, eine einzurichten Javascript-Befehl direkt an den Standarddrucker senden. Wenn Ihre Besucher dies wünschen, müssen sie ihre eigene Schaltfläche "Schnelldruck" in ihrer Browser-Symbolleiste einrichten.