mit COM-Port drucken

jopo

Mitglied
Hallo, ich habe ein Problem mit Com-Ports und Java.
Zunächst meine Situation:
Ich entwickle derzeit eine Kassensoftware in Java, die mit einem seriellen Bondrucker(Star TSP 613) einen Kassenbon drucken soll. Ich probierte bereits work-arounds, die den Bon als normalen PrintJob generieren und dann den Bon mit dem Win-Druckertreiber ausgeben. Diese Methode war jedoch schleichend langsam und ist keinem Kunden zuzumuten... Also fing ich an, den Drucker direkt am COM1-Port anzusprechen. JAVA2S.COM liefert hier auch eine hilfreiche Testklasse.
Java:
import java.io.*;
import javax.comm.*;
import java.util.*;

public class PortWriter
{
    static Enumeration ports;
    static CommPortIdentifier pID;
    static OutputStream outStream;
    SerialPort serPort;
    static String messageToSend = "message!\n";
    
    public PortWriter() throws Exception{
        serPort = (SerialPort)pID.open("PortWriter",2000);
        outStream = serPort.getOutputStream();
        serPort.setSerialPortParams(9600, SerialPort.DATABITS_8,
        SerialPort.STOPBITS_1,
        SerialPort.PARITY_NONE);
    }    
    
    public static void main(String[] args) throws Exception{
        ports = CommPortIdentifier.getPortIdentifiers();
        
        while(ports.hasMoreElements())
        {
            pID = (CommPortIdentifier)ports.nextElement();
            System.out.println("Port " + pID.getName());
            
            if (pID.getPortType() == CommPortIdentifier.PORT_SERIAL)
            {
                if (pID.getName().equals("COM1"))
                {
                    PortWriter pWriter = new PortWriter();
                    System.out.println("COM1 found");
                }
            }
        }
        outStream.write(messageToSend.getBytes());
    }
}
Wenn es jedoch darum geht, die Klasse in mein Projekt einzubinden hat wirft mein Eclipse nur noch Fehler...
[JAVA=14]Cannot cast from CommPort to SerialPort[/code]
[JAVA=15]The method getOutputStream() is undefined for the type SerialPort[/code]
[JAVA=16]- SerialPort.PARITY_NONE cannot be
resolved
- SerialPort.DATABITS_8 cannot be
resolved
- SerialPort.STOPBITS_1 cannot be
resolved[/code]
Gibt es irgendwelche Erklärungen dafür, dass es in einem bestehenden Projekt nicht klappt, als eigenständiges jedoch schon?
Vielen Dank!
 

@x.l

Bekanntes Mitglied
Seltsam, ich hab auf den Start TSP 650 gedruckt und das verlief völlig unproblematisch.

Habe den auch nicht gesondert behandelt. Habe darauf wie auf einen Standarddrucker Ausgaben gemacht.
 

jopo

Mitglied
ja, das Drucken an sich geht ja auch... das bestreite ich nicht.
Das Problem ist halt die Zeit, die er mit dem Druckertreiber brauch.
wenn ich zB. über cmd
Code:
ECHO BLA>COM1
druck, gehts um einiges schneller, wobei dann die POS-Steuercodes auch nicht funktionieren und jegliche Formatierung unmöglich wird! Diese 2 Methoden will ich aber keinesfalls benutzen, da sie halt wie gesagt entweder zu langsam sind oder keine Formatierungen möglich machen.
Des weiteren is der TSP650 mMn. ein neueres Modell als "mein" Drucker (TSP 613D).
 

HoaX

Top Contributor
Im Endeffekt mach dieser PortWriter den du gefunden hast doch auch nix anderes wie das "echo bla>COM1". D.h. du musst dich dann ebenso um die Formatierung usw kümmern. Ich würde beim "normalen" Drucken bleiben oder mich an den Hersteller wenden warum das so langsam ist. Mal nen andren Rechner probiert?
 

jopo

Mitglied
jop, auch schon am andren rechner probiert, mit gleichem ergebnis. Stand der Dinge ist jetz, dass wir uns nen neuen Drucker bestellt haben... wenns da neues gibt werd ich mich melden
 

jopo

Mitglied
Hi, ich bin jetzt so weit, dass ich von meiner Maschine drucken kann... Jedoch läuft es auf keinem anderen PC!

Probiere ich, einen Bon zu generieren funktioniert es und ich seh ihn richtig formatiert und mit allen Zeilen in der shell...
Soll er den Bon jedoch drucken wirft er eine NullPointerException!
Java:
public static void main(){
        prep();
        ports = CommPortIdentifier.getPortIdentifiers();
        PrintBon pWriter = null;
        try {
            while (ports.hasMoreElements()) {
                pID = (CommPortIdentifier) ports.nextElement();
                System.out.println("Port " + pID.getName());

                if (pID.getPortType() == CommPortIdentifier.PORT_SERIAL && pID.getName().equals("COM1")) {
                    pWriter = new PrintBon();
                }
            }
            String MSG =
                   z1 + "\n"
                   + z2 + "\n"
                   + z3 + "\n"
                   + z4 + "\n"
                   + z5 + "\n\n"
                   + z6 + "\n\n\n";
            for (int n = 0; n < boninhalt.size(); n++) {
                MSG = MSG + boninhalt.elementAt(n) + "\n";
            }
            
            MSG +=   "\n        Gesammtpreis: EUR " + main.Preis(main.repP(main.Brutto)) + "\n"
                   + "        Inkl 19%MwSt: EUR " + main.repP(main.Steuer) + "\n\n"
                   + "  Vielen Dank fuer Ihren Einkauf!\n\n\n\n\n\n\n\n";
            System.out.println("::BON:: \n"+MSG);   // Druckt den Bon formatiert aus, mit allen Inhalten
            byte[]b0n= MSG.getBytes();
            outStream.write(b0n);   // HIER wirft er die Exception

        }catch (IOException ex) {
                Logger.getLogger(PrintBon.class.getName()).log(Level.SEVERE, null, ex);
        }catch (Exception ex) {
                Logger.getLogger(PrintBon.class.getName()).log(Level.SEVERE, null, ex);
        }
        finally{
            try {
                outStream.close();
            }catch (Exception e) {}
        }
        prepareBon.clear();
    }
Woran liegt das bitte?
 

tommmych

Neues Mitglied
Ich suche seit geraumer Zeit nach diesem ominösen javax.comm.

Java:
import javax.comm.CommPort;
import javax.comm.CommPortIdentifier;
import javax.comm.NoSuchPortException;
import javax.comm.ParallelPort;
import javax.comm.PortInUseException;
import javax.comm.SerialPort;
import javax.comm.UnsupportedCommOperationException;

Ich versuche Messwerte über die serielle Schnittstelle einzulesen. Bekomme aber keine Kommunikation hin weil ich javax.comm nirgens finde. Ich arbeite mit einem 64Bit Windows.

In euern Codes scheint es zu funktionieren. kann mir jemand diese jar oder java files irgendwie zukommen lassen?

Vielen Dank!

Tommy.
 

tommmych

Neues Mitglied
Vielen Dank!

Nachdem ich mir comm2.0.3.zip heruntergeladen und instaliert habe hats funktioniert.

Nun habe ich ein neues Problem:

Error loading win32com: java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jre6\bin\win32com.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform

weiss jemand ob es diese win32com.dll auch als 64 bit gibt? Oder muss ich zurück zu 32bit windows?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Serial port abfragen Java Basics - Anfänger-Themen 18
R Java E-mail versenden. SMTP Port Fehler Java Basics - Anfänger-Themen 8
F LPT Port / Relaiskarte ansteuern Java Basics - Anfänger-Themen 5
M daytime-Server Port 13 Java Basics - Anfänger-Themen 2
F Port Listener Java Basics - Anfänger-Themen 9
A Angeschlossenes Gerät am Com Port erkennen Java Basics - Anfänger-Themen 4
T Daten über Com Port senden Java Basics - Anfänger-Themen 2
R Rxtx Rs232: I Can t send to the port Java Basics - Anfänger-Themen 5
C Zugriff auf serielle Schnittstelle Com Port Java Basics - Anfänger-Themen 13
C Lesen von seriellem Port Java Basics - Anfänger-Themen 4
G http-Port beim Apache Tomcat ändern Java Basics - Anfänger-Themen 1
K (USB) Port anreden Java Basics - Anfänger-Themen 2
N port auf status abfragen Java Basics - Anfänger-Themen 5
Z Port Wächter Java Basics - Anfänger-Themen 6
C Serieller Port Java Basics - Anfänger-Themen 4
M html-seite drucken (gerendert) Java Basics - Anfänger-Themen 3
T DamagedFontException beim drucken Java Basics - Anfänger-Themen 3
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
izoards Drucken Frage zu FAQ Beitrag Java Basics - Anfänger-Themen 2
U Drucken.. Birt vs Jasper Java Basics - Anfänger-Themen 1
H Drucken auf Drucker Java Basics - Anfänger-Themen 8
B Drucken mit einem Terminal / Bon Printer Java Basics - Anfänger-Themen 4
B HTML Code drucken Java Basics - Anfänger-Themen 4
B Drucken: Default Paper von Drucker? Mein Drucker druckt falsch Java Basics - Anfänger-Themen 3
B Drucken in JAVA -> nicht "Java printing" Java Basics - Anfänger-Themen 3
D Erste Schritte HTML aus JEditorPane drucken Java Basics - Anfänger-Themen 5
I Drucken in Java / verschiedene Papierformate Java Basics - Anfänger-Themen 0
I Drucken (Print) monitoren Java Basics - Anfänger-Themen 0
I Erste Schritte Drucken in JAVA / Druckaufträge etc. Java Basics - Anfänger-Themen 15
T Drucken mit Java Java Basics - Anfänger-Themen 16
E Input/Output Drucken am Mac immer gleiche Schriftgröße?!? Java Basics - Anfänger-Themen 2
E Input/Output png Auf Dymo 450 drucken Java Basics - Anfänger-Themen 2
S JPanel drucken -> PrinterException Java Basics - Anfänger-Themen 2
C Drucken/Druckdesign mit Java Java Basics - Anfänger-Themen 8
J checkbox status abfragen und drucken Java Basics - Anfänger-Themen 13
K doppeltes paint beim Drucken Java Basics - Anfänger-Themen 8
B Source Code "in einem Rutsch" drucken in Eclipse Java Basics - Anfänger-Themen 5
K Drucken Java Basics - Anfänger-Themen 8
G Mit Java Drucken Java Basics - Anfänger-Themen 11
O OOP prindata Methode aufrufen!? Methode drucken + Konstruktor Java Basics - Anfänger-Themen 9
G DRUCKEN von z.B. eines JFrame über print(Graphics g) Java Basics - Anfänger-Themen 9
K einfaches Drucken von Text (und ggf Bildern,gemischt) Java Basics - Anfänger-Themen 11
N barbecue Barcodes drucken Java Basics - Anfänger-Themen 5
H Bericht drucken Java Basics - Anfänger-Themen 4
T [Minimalprogramm] mit Java Drucken Java Basics - Anfänger-Themen 6
L drucken mit DocPrintJob Java Basics - Anfänger-Themen 3
R Drucken mithilfe eines Externen ActionListeners Java Basics - Anfänger-Themen 17
S Inhalt von GUI-Eingabe drucken Java Basics - Anfänger-Themen 7
I PDF aus JSF - Seite drucken mit iText Java Basics - Anfänger-Themen 5
J JTable Drucken Java Basics - Anfänger-Themen 3
R mehrseitiges Drucken Java Basics - Anfänger-Themen 3
J Listen - Anzahl positiver Werte drucken Java Basics - Anfänger-Themen 8
H Papierschacht beim Drucken ansprechen Java Basics - Anfänger-Themen 4
T Drucken von Listen bestehend aus Grafik und Text (unter swing) Java Basics - Anfänger-Themen 7
A JTree drucken Java Basics - Anfänger-Themen 2
M html datei drucken Java Basics - Anfänger-Themen 18
E BufferedImage drucken Java Basics - Anfänger-Themen 3
K Drucken mit PrinterJob Java Basics - Anfänger-Themen 3
andresendo Drucken Java Basics - Anfänger-Themen 2
D Drucken - Seite leer Java Basics - Anfänger-Themen 2
S Drucken mit iText? Java Basics - Anfänger-Themen 7
T Formular drucken! Java Basics - Anfänger-Themen 2
S Drucken in farbe Java Basics - Anfänger-Themen 4
G Problem mit Drucken Java Basics - Anfänger-Themen 2
G Strings drucken Java Basics - Anfänger-Themen 2
N Im Querformat drucken mit PrintJob Java Basics - Anfänger-Themen 4
Z Drucken eines JTables mit Text drüber Java Basics - Anfänger-Themen 6
S ich komm mit dem drucken nich klar Java Basics - Anfänger-Themen 17
S Drucken! Java Basics - Anfänger-Themen 16
B Formatierung beim Drucken Java Basics - Anfänger-Themen 4
D Drucken Java Basics - Anfänger-Themen 3
M Drucken Java Basics - Anfänger-Themen 2
B RTF erstellen und drucken Java Basics - Anfänger-Themen 3
G Drucken mit PrintJob oder PrinterJob? Java Basics - Anfänger-Themen 4
F Drucken einer Text Datei Java Basics - Anfänger-Themen 2
M Probleme beim Drucken Java Basics - Anfänger-Themen 4
R String drucken Java Basics - Anfänger-Themen 3
G Drucken von pdf Dokumenten mit Lücken Java Basics - Anfänger-Themen 2
J Drucken von files Java Basics - Anfänger-Themen 4
D Drucken ohne Dialogfeld Java Basics - Anfänger-Themen 2
E HTML Datei drucken Java Basics - Anfänger-Themen 4
G drucken: genaues positionieren Java Basics - Anfänger-Themen 2
R rechtsbündiges Drucken Java Basics - Anfänger-Themen 2
G Drucken Java Basics - Anfänger-Themen 2
D PDF Dokument drucken Java Basics - Anfänger-Themen 10
S verständnisproblem drucken Java Basics - Anfänger-Themen 11
J Serienbrief drucken Java Basics - Anfänger-Themen 2
A Drucken mit Java über FOP Java Basics - Anfänger-Themen 9
B Bilder drucken Java Basics - Anfänger-Themen 4
M Formatiert Drucken in Java Java Basics - Anfänger-Themen 3
A Drucken und Vorschau Java Basics - Anfänger-Themen 4
F Java-Logo drucken Java Basics - Anfänger-Themen 2
S Noch ungelöst ! Klasse JTable und Klasse Drucken verknüpfen. Java Basics - Anfänger-Themen 8
M DATEI DRUCKEN ????? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben