Vorwort
Kürzlich wurde der Drucker im Projekt verwendet. Ich habe es zuerst nicht verstanden, aber jetzt habe ich es getan, also habe ich es zusammengefasst. Dieser Artikel enthält den Hintergrundaufrufdruck (zwei Möglichkeiten) und den Front-End-JS-Druck, aber nur dh jetzt unterstützt der Druck. Wenn Sie den Drucker aus der Ferne anschließen möchten, müssen Sie die Erzeugung von QR -Codes und direkt mit den Druckerbefehls betreiben, die Sicherheitskonfiguration des Browsers ändern. Hier ist eine detaillierte Einführung.
Die erste Art des Hintergrunddrucks:
Verwenden Sie die PrintServicelookup -Klasse in Javax zum Drucken. Sie können den Standarddrucker direkt aufrufen oder die folgenden Methoden zum Filtern und Drucken verwenden:
PrintServicelookup.lookupmultidocPrintservices (Aromen, Attribute);
Der ausführbare Code lautet wie folgt:
public static void main (String [] args) {FileInputStream textstream = null; try {textStream = new FileInputStream ("Adresse"); } catch (FilenotFoundException e) {e.printstacktrace (); } if (textstream! // Erstellen Sie einen Druckjob docprintjob Job = printService.creatprintjob (); // Setzen Sie das Druckattribut PrinTrequestattributeset Pras = new HashprinTrequestattributeset (); // Setzen Sie die Papiergröße, Sie können auch eine neue Medienklasse erstellen, um die Größe pras.add (MediaSizeName.iso_a4) anzupassen. DocatTributeset Das = neuer Hashdocattributeset (); // Geben Sie den Druckinhalt an doc doc = new Simpledoc (Textstream, Geschmack, Das) an; // Zeigen Sie das Dialogfeld Drucken nicht an, drucken Sie Arbeit direkt aus {Job.print (doc, pras); // Ausführen spezifischer Druckvorgänge auf jeder Seite} catch (printException pe) {pe.printstacktrace (); }} else {// Wenn der Druckinhalt leer ist, fordert der Benutzer zum Drucken auf. }} Die zweite Art des Hintergrunddrucks:
HINWEIS: Die zweite und dritte Drucktypen verwenden Druckerbefehle zum Betrieb. Hier benötigen Sie das JNA JAR-Paket, und JDK benötigt 32-Bit, und die entsprechende DLL muss registriert werden. Für verschiedene Systeme müssen DLLs unter verschiedenen Fenstern registriert werden. Nach erfolgreicher Registrierung ist Win+R erforderlich, und der Befehl regsvr32.exe tscactiveX.dll wird aufgerufen und ausgeführt.
Der ausführbare Code lautet wie folgt:
public class javademo {public interface tsclibdll erweitert die Bibliothek {tsclibdll instance = (tsclibdll) nativ.loadlibrary ("tsclib", tsclibdll.class); int about (); int openport (String Pianononame); int coneport (); int sendCommand (String Printercommand); int setup (String -Breite, Stringhöhe, String -Geschwindigkeit, String -Dichte, Stringsensor, String vertikal, String -Offset); int downloadpcx (String -Dateiname, String image_name); int barCode (String x, String y, String -Typ, Stringhöhe, String -lesbar, Stringrotation, Zeichenfolge schmal, Zeichenfolge breit, Zeichenfolgecode); int druckerFont (String x, String y, String fontTyPe, String -Drehung, String xmul, String ymul, String -Text); int clearBuffer (); int printlabel (String -Set, String Copy); int formfeed (); int nobackfeed (); int WindowsFont (int x, int y, int fontheight, int rotation, int fontStyle, int fontunderline, String szfaceName, String -Inhalt); } public static void main (String [] args) {System.setProperty ("jna.encoding", "gbk"); // Chinese SimpledateFormat df = new SimpleDateFormat ("yjyy-mm-dd hh: mm: ss"); String time = df.Format (neues Datum ()); String qrcode = "pd102011"; Tsclibdll.instance.openport ("tsc ttp-244 pro"); // Druckmodell tsclibdll.instance.setup ("70", "40", "5", "8", "0", "2", "0"); Tsclibdll.instance.clearBuffer (); String command = "qrcode 120,90, q, 8, a, 0, m1, s7,/" " + qrcode +"/""; // Die Parameter und Inhalte des QR -Codes tsclibdll.instance.sendcommand (Befehl) drucken; // Übertragungsbefehl tsclibdll.instance.sendcommand ("Text 300 70 36 0 0 0 Arial"+ "Büroversorgungslabel-Papier"); //Tsclibdll.instance.windowsfont(300, 70, 36, 0, 0, 0, "Arial", "Bürozubehör-label Paper"); Tsclibdll.instance.printlabel ("1", "1"); Tsclibdll.instance.cleSeport (); }} Hinweis: Diese Druckmethode erfordert eine USB-Verbindung (TTP-244 Pro). Wenn Sie online generieren und remote verbinden möchten, müssen Sie die dritte Methode verwenden.
Die dritte Art des JS -Drucks
Beim Drucken mit JS ist der Browser hauptsächlich eingeschränkt. Derzeit unterstützt nur der IE -Browser es. Beim Drucken kann der Automatisierungsserver keine Objekte auf der Konsole erstellen. Bitte passen Sie die relevanten Einstellungen in ActiveX in der benutzerdefinierten Ebene in der Browser -Sicherheit an, um aktiviert zu werden. Der Code ist wie folgt:
<script type = "text/javaScript"> function printqrcode () {var tscobj = new ActiveXObject ("tscactiveX.tsclib"); // dll, der vom Drucker verwendet //tscobj.activeXabout () verwendet wird; // Druckerinformationen tscobj.activexopenport ("TSC TTP-2.244 Pro"); // Druckername, kann nicht falsch geschrieben werden //tscobj.activexdownloadpcx ("D:/myeClipSeProject/Dateimanager/Trunk/02-Referenz/03-Qr-Codes-Printer/01-DEVELVICT-Hilfshelp/PHP Call Beispiel/tscactiveX.dll-Php-Exampe/"," 123.pcx "); Tscobj.activeXsetup ("70", "40", "4", "15", "0", "2,5", "0"); // Druckeinstellungen // Tscobj.activexSetup ("Etikettbreite", "Etiketthöhe", "Druckgeschwindigkeit", "Druckdichte (0-15)). Senso) "," Gap/Black Mark vertikaler Abstand (mm) "," Gap/Black Mark -Offset -Entfernung (mm) "); //Tscobj.activeXFormfeed (); //Tscobj.activeXnobackFeed (); Tscobj.activeXsendcommand ("Richtung 1"); // Setzen Sie die Tag -Richtung, Richtung 1 Obere linke Ecke (x, y) = {0,0}; Richtung 0 untere rechte Ecke (x, y) = {0,0}; Tscobj.activeXsendcommand ("REET ON"); Tscobj.activeXClearBuffer (); //Tscobj.activeXsendCommand ("putpcx 0,0,/" 123.pcx/""); /* 1. ActiveXPrinterFont verwendet integrierte Codierung für Maschine, die normalerweise zum Eingeben in englischer Sprache verwendet wird. 2. ActiveXWindowsfont kann chinesische Zeichen ausgeben, muss jedoch eine Schriftart im System existieren. Tscobj.activeXprinterfont ("A", "B", "C", "D", "E", "F", "G"); A: String, der Ausgangspunkt in x -Richtung des Textes, dargestellt durch einen Punkt. B: String, der Ausgangspunkt der Text -y -Richtung, dargestellt durch einen Punkt. c: Built font names, a total of 12 types (1: 8*12 dots 2: 12*20 dots 3: 16*24 dots 4: 24*32 dots 5: 32*48 dots TST24.BF2: Traditional Chinese 24*24 TST16.BF2: Traditional Chinese 16*16 TTT24.BF2: Traditional Chinese 24*24 (Letter) TSS24.BF2: Chinese 24*24 TSS16.BF2: Chinese 16*16 K: Text 24*24 L: Text 16*16) D: String, Drehwinkel E: String, X-Regisseur-Vergrößerung 1-8 f: String, y-Region-Vergrößerung 1-8 g: String, Druck inhaltlich ActiveXWindowsfont (a, b, c, d, e, f, g, h) Beschreibung: Text unter Verwendung von Windows TTF FONT. Parameter: A: Ganzzahltyp, der Ausgangspunkt in X -Richtung des Textes, der durch einen Punkt dargestellt wird. B: Ganzzahltyp, der Ausgangspunkt der Text -y -Richtung, dargestellt durch einen Punkt. C: Ganzzahltyp, Schrifthöhe, dargestellt durch Punkte. D: Ganzzahltyp, Drehwinkel, gegen den Uhrzeigersinn. 0-rotat 0 °, 90-rotat 90 °, 180-Rotat 180 °, 270-Rotat 270 °. E: Ganzzahltyp, Schriftart. 0: Etikett; 1: kursiv; 2: fett; 3: mutig kursiv. F: Ganzzahltyp, Unterstrich, 0: kein Unterstrich; 1: Unterstriche. G: String -Typ, Schriftname. Zum Beispiel: Arial, Times New Roman. H: String -Typ, Textinhalt drucken. */// Tscobj.activeXWindowsfont (500, 200, 48, 90, 0, "Arial", "/U7F16/U7801"); Tscobj.activeXWindowsfont (260, 60, 60, 0, 2, 0, "Arial", "xx-spezifisch"); // var cmd = 'QRCode-Barcode-Startpunkt in x-Richtung, Barcode-Startpunkt in y-Richtung, Fehlerkorrekturstufe, QR-Codehöhe, A (A und M), Rotationswinkel, M2 (in Typ 1 und Typ 2), S1 (S1-S8, Standard S7),/"1231 Hello 24213333332545454553/". var cmd = 'qrcode 80,80, h, 7, a, 0, m2, s1,/"'+" 123456789 "+'/"'; Tscobj.activeXsendCommand (CMD); Tscobj.activeXWindowsfont (280, 150, 40, 0, 0, "Arial", "123456789"); Tscobj.activeXWindowsfont (180, 260, 30, 0, 0, 0, "Arial", "xxxxxxxxxx"); Tscobj.activeXprintlabel ("1", "1"); // (Anzahl der Druckkopien, Anzahl der Drucke pro Seite) tscobj.activexClearBuffer (); // Tscobj.activeXCLOSEPORT (); // den Druckport} </script> schließen} </script>Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Referenzwert für das Studium oder die Arbeit eines jeden hat. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen. Vielen Dank für Ihre Unterstützung bei Wulin.com.