Boa tarde,
Estou tentando imprimir em uma impressora zebra utilizando a api comm mas nao imprime. o texto vai para o spool, é mostrado na propriedades da impressora como imprimindo, mas nada sai. abaixo o codigo que estou usando.
import javax.comm.*;
import java.io.*;
import java.util.Enumeration;
public class PrintZebra {
public String[] portas;
public Enumeration listaDePortas;
public ParallelPort parallelPort;
public CommPortIdentifier ips;
static OutputStream outputStream;
static DataOutputStream DOSone;
public PrintZebra(){
listaDePortas = CommPortIdentifier.getPortIdentifiers();
}
public boolean PortaExiste(String COMp){
String temp;
boolean e = false;
while (listaDePortas.hasMoreElements()) {
ips = (CommPortIdentifier)listaDePortas.nextElement();
temp = ips.getName();
if (temp.equals(COMp)== true) {
e = true;
break;
}
}
return e;
}
public void enviarDados(String po, String mensagem)
{
if (PortaExiste(po)) {
try {
parallelPort = (ParallelPort) ips.open("PrintZebra", 5000);
} catch (PortInUseException e) {
System.out.println("Porta em uso.");
}
try {
outputStream = parallelPort.getOutputStream();
} catch (IOException e) {
}
try {
parallelPort.setMode(1);
}catch(UnsupportedCommOperationException e) {
System.out.println("Unsupported byte mode.");
}
try {
DOSone = new DataOutputStream(parallelPort.getOutputStream());
} catch (IOException e) {
}
System.out.println("Mensagem '"+mensagem+"' na porta "+parallelPort.getName());
try {
//outputStream.write(00000001);
outputStream.flush();
outputStream.write(mensagem.getBytes());
//byte x = 0x01;
//DOSone.writeByte(x);
} catch (IOException e) {
e.printStackTrace();
}
try {
Thread.sleep(1000);
} catch (Exception e) {
}
parallelPort.close();
}
}
public static void main(String args[])
{
PrintZebra s = new PrintZebra();
s.enviarDados(“LPT1”, "ola mundo ");
}
}