Guten Morgen Zusammen,
ich habe einen Etikettendrucker, auf dem ich eine Etikettenvorlage mit Variablen gespeichert habe. Nun versuche ich die TCP-IP Verbindung zum Drucker aufzubauen und dieses Etikett zur drucken.
Ich habe das gleiche Etikett auch schon über LabView mit dem Drucker gedruckt, was prima funktioniert. Dabei gebe ich auch nur die IP-Adresse und den Port für die Verbindung an und da wird direkt die Verbindung hergestellt.
Über Java versuche ich es mit diesem Code:
Leider wird direkt beim Anlegen des sockets ein Timeoutfehler erzeugt. Ich vermute mal, dass Java eine "Anfrage" an den Drucker sendet, welche dieser nicht beantwortet oder so ähnlich?! Wie gesagt, in LabView funktioniert es einwandfrei.
Hat jemand eine Idee, was ich anders machen muss, damit die Verbindung aufgebaut und ich das Etikett drucken kann?
Bin für jede Hilfe dankbar.
ich habe einen Etikettendrucker, auf dem ich eine Etikettenvorlage mit Variablen gespeichert habe. Nun versuche ich die TCP-IP Verbindung zum Drucker aufzubauen und dieses Etikett zur drucken.
Ich habe das gleiche Etikett auch schon über LabView mit dem Drucker gedruckt, was prima funktioniert. Dabei gebe ich auch nur die IP-Adresse und den Port für die Verbindung an und da wird direkt die Verbindung hergestellt.
Über Java versuche ich es mit diesem Code:
Java:
public class PrintLabel
{
String IP;
String NrMW;
String NrZulieferer;
int lfdNr;
PrintLabel(String IPAdresse, String NummerMW, String NummerZulieferer, int laufendeNr)
{
this.IP = IPAdresse;
this.NrMW = NummerMW;
this.NrZulieferer = NummerZulieferer;
this.lfdNr = laufendeNr;
}
public void print()
{
int port = 9100;
SimpleDateFormat date = new SimpleDateFormat("yymmdd");
String datum = date.format(new Date());
String lfdnummer = String.valueOf(lfdNr);
String temp = lfdnummer;
if(lfdnummer.length() < 4)
{
for(int ii = 4 - lfdnummer.length(); ii < 4; ii++)
{
temp = "0" + temp;
}
}
lfdnummer = temp;
try
{
Socket socket = new Socket(IP, port);
OutputStream output = socket.getOutputStream();
PrintWriter writer = new PrintWriter(output, true);
writer.println();
writer.println("^KStativLabel");
writer.println(NrMW + "-" + NrZulieferer + "-" + datum + "-" + lfdnummer);
writer.println("E");
writer.println("~P1");
Thread.sleep(100);
InputStream input = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String line;
String sret = "";
while((line = reader.readLine()) != null)
{
sret += line;
}
JOptionPane.showMessageDialog(null, sret, "Antwort", JOptionPane.INFORMATION_MESSAGE);
}
catch(UnknownHostException unknownex)
{
JOptionPane.showMessageDialog(null, "Keine Verbindung zu Drucker! Bitte Drucker und Netzwerk überprüfen\nFehler: " + unknownex.getLocalizedMessage(), "Druckerverbindung", JOptionPane.ERROR_MESSAGE);
}
catch(IOException ioex)
{
JOptionPane.showMessageDialog(null, "Fehler beim Drucken des Labels aufgetreten!\nFehler: " + ioex.getLocalizedMessage(), "Druckfehler", JOptionPane.ERROR_MESSAGE);
}
catch(InterruptedException inex)
{
JOptionPane.showMessageDialog(null, "Drucken des Etiketts wurde unterbrochen!\nFehler: " + inex.getLocalizedMessage(), "Druckfehler", JOptionPane.ERROR_MESSAGE);
}
}
}
Leider wird direkt beim Anlegen des sockets ein Timeoutfehler erzeugt. Ich vermute mal, dass Java eine "Anfrage" an den Drucker sendet, welche dieser nicht beantwortet oder so ähnlich?! Wie gesagt, in LabView funktioniert es einwandfrei.
Hat jemand eine Idee, was ich anders machen muss, damit die Verbindung aufgebaut und ich das Etikett drucken kann?
Bin für jede Hilfe dankbar.