ola pessoal
Alguém sabe como faço para enviar comandos para uma impressora via lpt1? O programa que fiz compila e não gera exceção, mas a impressora não imprime (o programa também não dá aviso de erro).
O código está abaixo:
import javax.comm.;
import java.util.;
import java.io.;
import javax.swing.;
/**
*
-
@author rodrigo.pinto
*/
public class Paralela {
Enumeration listaDePortas;
String portas[];
String codigoImpressao;
OutputStream saida;
ParallelPort portaParalela;
int timeout = 1000;
int baudrate = 57600;
/** Creates a new instance of Paralela */
public Paralela() {
listaDePortas = CommPortIdentifier.getPortIdentifiers();
int i = 0;
portas = new String[4];
while (listaDePortas.hasMoreElements()) {
CommPortIdentifier ips = (CommPortIdentifier)listaDePortas.nextElement();
portas[i] = ips.getName();
if (ips.getPortType() == CommPortIdentifier.PORT_PARALLEL)
JOptionPane.showMessageDialog(null, "porta paralela: " + portas[i]);
i++;
}
try{
FileReader ptrETQ = new FileReader(new File("C:\\paralela\\ETQ.TXT"));
CommPortIdentifier cp = CommPortIdentifier.getPortIdentifier("LPT1");
portaParalela = (ParallelPort)cp.open("Paralela", timeout);
portaParalela.setMode(ParallelPort.LPT_MODE_SPP);
saida = portaParalela.getOutputStream();
while (true){
int k = ptrETQ.read();
if(k == -1) break;
System.out.print((char) k);
saida.write((char) k);
}
//saida.flush(); //DEVE SER USADO COM A IMPRESSORA CONECTADA AO PC
saida.close();
ptrETQ.close();
System.out.println("Mensagem enviada");
}
catch (NoSuchPortException nspe){
JOptionPane.showMessageDialog(null, "Não foi possível encontrar a porta desejada. ERRO " + nspe.getMessage(), "Mensagem do sistema", JOptionPane.ERROR_MESSAGE);
}
catch (PortInUseException piue){
JOptionPane.showMessageDialog(null, "Porta solicitada está em uso.ERRO " + piue.getMessage(), "Mensagem do sistema", JOptionPane.ERROR_MESSAGE);
}
catch(IllegalStateException ise){
JOptionPane.showMessageDialog(null, "Tipo de porta desconhecida.ERRO" + ise.getMessage(), "Mensagem do sistema", JOptionPane.ERROR_MESSAGE);
}
catch(UnsupportedCommOperationException ucoe){
JOptionPane.showMessageDialog(null, "Operação não suportada. ERRO " + ucoe.getMessage(), "Mensagem do sistema", JOptionPane.ERROR_MESSAGE);
}
catch (IOException ioe){
JOptionPane.showMessageDialog(null, "Não foi possível fechar a porta\nou arquivo de impressão não foi encontrado. ERRO " + ioe.getMessage(), "Mensagem do sistema", JOptionPane.ERROR_MESSAGE);
}
catch(Exception e){
JOptionPane.showMessageDialog(null, "Ocorreu um erro inesperado. ERRO " + e.getMessage(), "Mensagem do sistema", JOptionPane.ERROR_MESSAGE);
e.printStackTrace();
}
}
public static void main (String args[]){
System.out.println(“Enviando a mensagem pela paralela”);
Paralela p = new Paralela();
System.exit(0);
}
}
Espero que alguém possa me ajudar.
valew!
[quote=Rodrigo Vieira Pinto]ola pessoal
Alguém sabe como faço para enviar comandos para uma impressora via lpt1? O programa que fiz compila e não gera exceção, mas a impressora não imprime (o programa também não dá aviso de erro).
O código está abaixo:
import javax.comm.;
import java.util.;
import java.io.;
import javax.swing.;
/**
*
-
@author rodrigo.pinto
*/
public class Paralela {
Enumeration listaDePortas;
String portas[];
String codigoImpressao;
OutputStream saida;
ParallelPort portaParalela;
int timeout = 1000;
int baudrate = 57600;
/** Creates a new instance of Paralela */
public Paralela() {
listaDePortas = CommPortIdentifier.getPortIdentifiers();
int i = 0;
portas = new String[4];
while (listaDePortas.hasMoreElements()) {
CommPortIdentifier ips = (CommPortIdentifier)listaDePortas.nextElement();
portas[i] = ips.getName();
if (ips.getPortType() == CommPortIdentifier.PORT_PARALLEL)
JOptionPane.showMessageDialog(null, "porta paralela: " + portas[i]);
i++;
}
try{
FileReader ptrETQ = new FileReader(new File("C:\\paralela\\ETQ.TXT"));
CommPortIdentifier cp = CommPortIdentifier.getPortIdentifier("LPT1");
portaParalela = (ParallelPort)cp.open("Paralela", timeout);
portaParalela.setMode(ParallelPort.LPT_MODE_SPP);
saida = portaParalela.getOutputStream();
while (true){
int k = ptrETQ.read();
if(k == -1) break;
System.out.print((char) k);
saida.write((char) k);
}
//saida.flush(); //DEVE SER USADO COM A IMPRESSORA CONECTADA AO PC
saida.close();
ptrETQ.close();
System.out.println("Mensagem enviada");
}
catch (NoSuchPortException nspe){
JOptionPane.showMessageDialog(null, "Não foi possível encontrar a porta desejada. ERRO " + nspe.getMessage(), "Mensagem do sistema", JOptionPane.ERROR_MESSAGE);
}
catch (PortInUseException piue){
JOptionPane.showMessageDialog(null, "Porta solicitada está em uso.ERRO " + piue.getMessage(), "Mensagem do sistema", JOptionPane.ERROR_MESSAGE);
}
catch(IllegalStateException ise){
JOptionPane.showMessageDialog(null, "Tipo de porta desconhecida.ERRO" + ise.getMessage(), "Mensagem do sistema", JOptionPane.ERROR_MESSAGE);
}
catch(UnsupportedCommOperationException ucoe){
JOptionPane.showMessageDialog(null, "Operação não suportada. ERRO " + ucoe.getMessage(), "Mensagem do sistema", JOptionPane.ERROR_MESSAGE);
}
catch (IOException ioe){
JOptionPane.showMessageDialog(null, "Não foi possível fechar a porta\nou arquivo de impressão não foi encontrado. ERRO " + ioe.getMessage(), "Mensagem do sistema", JOptionPane.ERROR_MESSAGE);
}
catch(Exception e){
JOptionPane.showMessageDialog(null, "Ocorreu um erro inesperado. ERRO " + e.getMessage(), "Mensagem do sistema", JOptionPane.ERROR_MESSAGE);
e.printStackTrace();
}
}
public static void main (String args[]){
System.out.println(“Enviando a mensagem pela paralela”);
Paralela p = new Paralela();
System.exit(0);
}
}
Espero que alguém possa me ajudar.
valew![/quote]
Use esse comando, passando a mensagem que será impressa:
public static void sendLPT1(final String str) {
new Thread() {
public void run() {
try {
FileOutputStream os = new FileOutputStream(“LPT1”);
PrintStream ps = new PrintStream(os);
ps.print(str);
os.close();
}
catch(Exception e) {
}
}
}.start();
}
Rodrigo Raminelli
Como faço para imprimir com javax.comm, quando a impressora esta instalada em outro computador, e tbm como faço para mudar o tamanho da fonte na impressão. Pois possuo um nota fiscal que esta mal formatada na tabulação de tamanho.