Como usar javax.comm na LPT1

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

valeu xará!!!

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.