Ola pessoal.
Estou fazendo para fins de estudo uma aplicação que deva emitir um cupom impressora fiscal. Instalei o emulador da impressora MP4200 THFI, da bematech e o programa Vitrual serial ports emul…l (VSPE) para virtualizar a porta COM6: que onde configuro o emulador da bematech.
Toda vez que mando algum comando para impressora, meu programa esta retornando uma execeção de “Acesso negado”, acreditando ser talvez algum bloqueio do windows 7 64bits que uso, tentei fazer em uma VM com windows xp 32bits, e estou tendo o mesmo erro ao mandar algum comando para a porta emulada, alguem já passou por isto e poderia me dar uma ajudinha ?
Codigo para comunicar com a impressora:
package auxi;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
public class ImpressoraTexto {
//02. Os atributos
//view plaincopy to clipboardprint?
private String porta = "";
private FileOutputStream impressora = null;
//03. Um método que inicializa a comunicação com a impressora.
//view plaincopy to clipboardprint?
private boolean open() {
try {
impressora = new FileOutputStream(this.porta);
return true;
} catch (FileNotFoundException ex) {
JOptionPane.showMessageDialog(null, "erro na comunicação: "+ex.getMessage(),"Erro", JOptionPane.ERROR_MESSAGE);
return false;
}
}
//04. Um método que aciona a Guilhotina, caso a usa possua.
//view plaincopy to clipboardprint?
public void acionarGuilhotina() {
imprimirTexto("" + (char) 27 + (char) 109);
}
//05. Um Construtor para a Classe. Note que o próprio construtor já chama o método de abertura.
//view plaincopy to clipboardprint?
public ImpressoraTexto(String Porta) {
this.porta = Porta;
this.open();
}
//06. Um Método para imprimir o conteúdo desejado
//view plaincopy to clipboardprint?
public void imprimirTexto(String Texto) {
try {
byte[] bytes = Texto.getBytes();
impressora.write(bytes);
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, "erro: "+ex.getMessage());
}
}
//07. Um Método para encerrar a comunicação com a impressora
//view plaincopy to clipboardprint?
public void fechar() {
try {
impressora.close();
} catch (IOException ex) {
Logger.getLogger(ImpressoraTexto.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Codigo que manda o comando:
ImpressoraTexto imp = new ImpressoraTexto("COM6:");
imp.imprimirTexto("AAAAAAAAAAAAAAAA");
imp.fechar();
Qualquer sugestão ou criticas são bem vindas, obrigado !