HTML / Javascript One Click Print (keine Dialoge)

Lesezeit: 5 Minuten

HTML Javascript One Click Print keine Dialoge
teynon

Ist es möglich, eine Druckoption zu haben, die den Druckdialog umgeht?

Ich arbeite auf einem geschlossenen System und möchte die Druckdialogeinstellungen vordefinieren können; und verarbeite den Druck, sobald ich auf die Schaltfläche klicke.

Nach dem, was ich lese, variiert die Vorgehensweise für jeden Browser. Beispielsweise würde IE ActiveX verwenden. Chrome / Firefox würde Erweiterungen erfordern. Auf dieser Grundlage muss ich anscheinend eine Anwendung in C++ schreiben, die vom Browser übergebene Parameter verarbeiten kann, um automatisch mit der richtigen Formatierung (für Etiketten) zu drucken. Dann muss ich es als Erweiterung für Chrome / Firefox umschreiben. Das Endergebnis ist, dass Benutzer auf unserem geschlossenen System diese Funktionen herunterladen / installieren müssen, je nachdem, welchen Browser sie verwenden.

Ich hoffe, es gibt einen anderen Weg, dies zu tun, aber diese Aufgabe verstößt höchstwahrscheinlich gegen Sicherheitsprobleme des Browsers.

  • was hast du letztendlich verwendet? Wir versuchen, den Firefox- oder Chrome-Browser zu verwenden.

    – Reaz Patwary

    19. März 15 um 1:58 Uhr

  • @ReazPatwary Am Ende haben wir etwas namens jZebra verwendet, das jetzt qz heißt (qzindustries.com/download) Ich habe jedoch nach einer anderen Möglichkeit gesucht / gefunden, aber es erfordert einen clientseitigen Download. Dies würde bedeuten, dass der Benutzer eine Anwendung installiert, die ein benutzerdefiniertes Protokoll verwendet (msdn.microsoft.com/en-us/library/ie/aa767914%28v=vs.85%29.aspx)

    – teynon

    20. März 15 um 2:05 Uhr

  • Danke für die schnelle Antwort. Aber unsere Hauptplattform ist Mac OSX. Sieht so aus, als wäre das eine .exe-Datei für die Windows-Plattform :(.

    – Reaz Patwary

    20. März 15 um 15:15 Uhr

  • @ReazPatwary – Das qz-Programm ist ein Java-basiertes Programm. Ich würde mir jedoch vorstellen, dass Macs auch benutzerdefinierte Protokolle unterstützen – stackoverflow.com/questions/471581/…

    – teynon

    20. März 15 um 16:36 Uhr

  • qz-Programm wird bezahlt, um Warnungen zu entfernen, und das auch noch 312 USD für 1 Jahr. Kennt jemand Freeware ähnliche Art von Produkt.

    – Kamaldeep Singh

    13. Januar 16 um 11:19 Uhr

HTML Javascript One Click Print keine Dialoge
teynon

Am Ende habe ich eine benutzerdefinierte Anwendung implementiert, die dem Nexus Mod Manager sehr ähnlich funktioniert. Ich habe eine C#-Anwendung geschrieben, die einen Benutzernamen registriert Anwendungs-URI-Schema. So funktioniert das:

  1. Der Benutzer klickt auf der Website auf „Drucken“.
  2. Die Website verlinkt den Benutzer zu „CustomURL://Print/{ID}
  3. Die Anwendung wird von Windows über das benutzerdefinierte URI-Schema gestartet.
  4. Die Anwendung kommuniziert mit dem vorkonfigurierten Server, um die Druckanforderung zu bestätigen und in meinem Fall den eigentlichen Druckbefehl zu erhalten.
  5. Die Anwendung verwendet dann die C# RawPrinterHelper Klasse, um Befehle direkt an den Drucker zu senden.

Dieser Ansatz erforderte einen anfänglichen Download vom Benutzer und eine einzige Sicherheitsabfrage von Windows beim ersten Start der Anwendung. Ich habe auch etwas Javascript-Magie implementiert, damit es erkennt, ob der Druckauftrag bearbeitet wurde oder nicht. Wenn dies nicht der Fall ist, werden sie aufgefordert, die Anwendung herunterzuladen.

Ich weiß, dass dies eine späte Antwort ist, aber hier ist eine Lösung, die ich verwende. Ich habe dies nur mit IE verwendet und mit keinem anderen Browser getestet.

Dieser Unterdruckstoß ersetzt effektiv die Standarddruckfunktion.

<script language="VBScript">
Sub Print()
       OLECMDID_PRINT = 6
       OLECMDEXECOPT_DONTPROMPTUSER = 2
       OLECMDEXECOPT_PROMPTUSER = 1
       call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)
End Sub
document.write "<object ID='WB' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>"
</script>

Verwenden Sie dann Javascripts window.print(); Verknüpfungen zu einem Hyperlink oder einer Schaltfläche zum Ausführen des Druckbefehls.

Wenn Sie beim Laden der Seite automatisch drucken möchten, fügen Sie den folgenden Code in die Nähe des Tags ein.

<script type="text/javascript"> 
window.onload=function(){self.print();} 
</script> 

  • VBScript funktioniert auf keinem anderen Browser, Punkt. Aber es ist eine nette Lösung für IE.

    – eis

    24. Januar 13 um 16:48 Uhr

  • Nur um nachzufassen, habe ich schließlich eine Java-App namens jZebra implementiert. Diese App erfordert die erstmalige Installation/Sicherheitsgenehmigung. code.google.com/p/jzebra

    – teynon

    16. September 13 um 2:28 Uhr

HTML Javascript One Click Print keine Dialoge
Abhijeet Grünkohl

Ich schreibe diese Antwort für den Firefox-Browser.

  • Öffnen Sie Datei > Seite einrichten

  • Machen Sie alle Kopf- und Fußzeilen leer

  • Setzen Sie die Ränder auf 0 (Null)

  • Geben Sie in der Adressleiste von Firefox about:config ein

  • Suchen nach print.always_print_silent und doppelklicken Sie darauf

  • Ändere es von false auf true

    • Auf diese Weise können Sie das Popup-Fenster Drucken überspringen, das angezeigt wird, sowie den Schritt überspringen, in dem Sie auf OK klicken müssen, und automatisch den Beleg in der richtigen Größe drucken.
  • Wenn print.always_print_silent kommt nicht vor

    • Klicken Sie mit der rechten Maustaste auf einen leeren Bereich des Einstellungsfensters

    • Wählen Sie Neu > Boolesch

    • Geben Sie als Namen “print.always_print_silent” ein (ohne Anführungszeichen)

    • OK klicken

    • Wählen Sie für den Wert wahr aus

  • Vielleicht möchten Sie auch überprüfen, was aufgeführt ist print.print_printer

    • Möglicherweise müssen Sie Allgemein/Nur Text wählen (oder wie auch immer Ihr Belegdrucker heißen mag)

1644072787 898 HTML Javascript One Click Print keine Dialoge
Pater

Die allgemeine Antwort lautet: NEIN, Sie können dies im Allgemeinen nicht tun, aber es gibt einige Fälle, in denen Sie dies tun könnten. Überprüfen
http://justtalkaboutweb.com/2008/05/09/javascript-print-bypass-printer-dialog-in-ie-and-firefox/

Wenn Sie so etwas trotzdem tun dürften, wäre dies ein Sicherheitsproblem, da ein Malware-Skript unbemerkt Druckaufträge an den Drucker des Besuchers senden könnte.

HTML Javascript One Click Print keine Dialoge
Reaz Patwary

Ich habe ein tolles Plugin von Firefox gefunden, das dieses Problem löst. Versuchen nahtloser Druck Plugin von Firefox, das etwas aus einer Webanwendung druckt, ohne einen Druckdialog anzuzeigen.

  1. Öffnen Sie Firefox
  2. Suchen Sie nach dem Add-On-Namen Seamless Printing und installieren Sie es
  3. Nach erfolgreicher Installation wird das Druckfenster umgangen, wenn der Benutzer etwas drucken möchte.

  • Dieses Addon wird nicht mehr unterstützt. Kennen Sie eine Alternative?

    – AnthonyVO

    27. November 18 um 13:59 Uhr

  • Nicht wirklich. Aber ich werde es nochmal überprüfen.

    – Reaz Patwary

    29. November 18 um 22:10 Uhr

  • Unter Windows könnte ein im Hintergrund laufendes Autohotkey-Skript nach dem Druckdialog des Browsers suchen und ihn bestätigen.

    – Viktoria

    20. Juni 19 um 23:55 Uhr

1644072788 812 HTML Javascript One Click Print keine Dialoge
Jean-Francois Fabre

Ich konnte das Problem mit dieser Bibliothek lösen: html2pdf.js (https://github.com/eKoopmans/html2pdf.js)

In Anbetracht dessen, dass Sie Zugriff darauf haben, könnten Sie so etwas tun (aus dem Github-Repository entnommen):

var element = document.getElementById('element-to-print'); 
html2pdf(element);

  • Dieses Addon wird nicht mehr unterstützt. Kennen Sie eine Alternative?

    – AnthonyVO

    27. November 18 um 13:59 Uhr

  • Nicht wirklich. Aber ich werde es nochmal überprüfen.

    – Reaz Patwary

    29. November 18 um 22:10 Uhr

  • Unter Windows könnte ein im Hintergrund laufendes Autohotkey-Skript nach dem Druckdialog des Browsers suchen und ihn bestätigen.

    – Viktoria

    20. Juni 19 um 23:55 Uhr

.

784460cookie-checkHTML / Javascript One Click Print (keine Dialoge)

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy