Ascii Stream senden

luchs3

Erfahrenes Mitglied
Hi,

Ich habe einen Etikettendrucker, der Befehle im Ascii- Format benötigt.
Wenn ich den Testseitenbefehl in eine Datei schreiben lasse, sieht das so aus:
PrinterTest1.prn
Code:
qCn
M0500
O0220
V0
SC
D
L
D11
PC
SC
1X1100000910000L154001
1X1100000010000L001091
1X1100000880003L151001
1X1100000010003L001088
1X1100000660010L040005
1X1100000120028L005060
1X1100000660060L035005
1X1100000390060L030005
1X1100000120060L035005
1X1100000120061L005060
1X1100000660105L035005
1X1100000390105L035005
1X1100000120105L035005
1X1100000390105L005033
1X1100000120135L005033
1X1100000660150L004005
Q0001
E

Wenn ich jedoch einen String an den Port sende, habe ich rein diesen String im Logfile.

Hat da jemand schon Erfahrung damit?
 
Der Drucker wird über Kommandos im Ascii Format gesteuert.
Zum Beispiel dieser Code liefert ein Etikett mit dem Artikel und dem Barcode darunter.
Code:
<STX> L <CR>
H07 <CR>
D11 <CR>
19110080100002510K OHM 1/4 WATT <CR>
1a6210000000050590PCS <CR>
E

Die Frage ist, wie kann ich das an den Drucker senden?
 
Hmm, also ich kann das Ding jetzt einmal ansprechen, und darauf drucken.
Das Schwierigste dabei war bis jetzt der Startbefehl (<STX> ist Ctrl B is 2)
Soweit so gut.
String kann ich auch übergeben, aber Umlaute machen echt Probleme.
hab aus dem Ding bis jetzt noch keinen einzigen Umlaut herausgebracht.
Wenn ich ihm 153 sende, Druckt er das Pfund- Zeichnen. Bei allen anderen, entweder Fragezeichen oder nichts.

Anleitung: http://www.datamaxcorp.com/_assets/library/pdf/allegro2_operators_manual_a3.pdf

Ach ja, das ergibt in der ersten Zeile einen Barcode, und danach die Beschreibung.
Code:
OutputStream fos = new FileOutputStream( "COM1:" );
PrintWriter pw = new PrintWriter( fos );
String bla = "\u0002L\r\nH07\r\nD11\r\nH07\r\n1F62040001" + bcLine[2] + "3001\r\n19110030001001010K OHM 1/4 WATT\r\nE";
pw.println(bla);
pw.close();
 
Hallo,

wenn dein Drucker nur Ascii Zeichen verträgt solltest du mal versuchen je ein Zeichen als byte zu schicken...
unter java haben die Zeichen (char) 2 byte wegen Unicode... das gilt auch für die Zeichen von String

deshalb:
write((byte)'a');

Gruß Tom
 
Dann druckt er die Zahl.
Hier z.B. 97

Wenn ich ihm die Variable als char übergebe z.B. 229 => O mit Tilde funktioniert es, aber nicht bei den Umlauten.
z.B. 148 ,153,142-> Fragezeichen

225 funktioniert wieder (ß)

wobei unter Linux geht das gar nicht.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück