Imprimir pela porta paralela

Pessoal, estou tendo muita dificuldade em comunicação via porta paralela em java. Ocorre o seguinte eu tenho uma impressora de etiquetas da marca Argox, e preciso enviar dados via porta paralela para ela. Eu tenho um programinha que manda através de java 2d uma string para a impressora. Este programinha abre a tela de impressão e envia a string. Acontece que eu estou utilizando o manual da impressora e tentando enviar uma string em decimal para a impressora que imprime um código de barras e alguns caracteres, só que com este programa que tenho, a string sai bem diferente na impressora. Gostaria de ver com vocês se alguém teria algum exemplo de programa que utiliza a porta paralela para enviar algo para a impressora. Agradeço se puderem me dar uma ajuda.

tem uma API da Sun para trabalhar com porta paralela, chamada JCOMM
procura lah no site… :roll:

microfilo, eu já tentei utilizar os exemplos da API de comunicação da SUN, inclusive eu tenho um exemplo de comunicação via porta serial, ocorre que a minha dificuldade está sendo com a porta paralela, tentei converter o programa que tenho mas estou tendo muita dificuldade, não encontro exemplos da utilização da comunicação via porta paralela que mostrem como aplicar o que preciso desenvolver. Agradeço se alguem tiver um exemplo de utilização da comunicação via porta paralela.

Pessoal eu já consegui fazer a comunicação com a impressora e estou conseguindo imprimir dados na mesma. Ocorre que para isto estou tendo de enviar dados com valores em hexadecimal para a mesma e para digitar uma String eu primeiro preciso procurar os valores em uma tabela de conversão e digitá-los em hexa no programa. Gostaria de ver se alguém teria uma função que converte de string para hexadecimal. Consegui um programinha que faz justamente o contrário, ou seja converte de hexa para string, tentei adaptá-lo mas não obtive sucesso. Segue o programinha:

public class HexToString{ 

    public static void main(String[] args){ 

        StringBuffer s = new StringBuffer("6F"); 

        String sHexToString = new String(""); 

        for(int i = 0; i < s.length(); i += 2){ 
           String sTemp = s.substring(i, i + 2); 
          
           sHexToString += new Character((char)(Integer.valueOf(sTemp,16).intValue())).toString(); 
            
        } 

        System.out.println(sHexToString); 
    } 
} 

Agradeço se alguém puder me ajudar.

Olá

Douglas, dê uma olhada na minha resposta sobre identação de código em http://www.guj.com.br/forum/viewtopic.php?t=15406

[]s
Luca

Desculpem, mas acontece que quando percebi meu erro, eu já havia enviado para o fórum e aí não tem jeito, não tem como arumar. :oops:

Olá

Há um botão Edit acima à direita.

[]s
Luca

[quote=“DouglasCar”]…Ocorre que para isto estou tendo de enviar dados com valores em hexadecimal para a mesma e para digitar uma String eu primeiro preciso procurar os valores em uma tabela de conversão e digitá-los em hexa no programa. …
Agradeço se alguém puder me ajudar…[/quote]

A função Integer.toHexString converte um inteiro para uma string em hexadecimal MINÚSCULO. Se o inteiro estiver entre 0 e 0xF, ela volta só um caracter.
A dica é:

  • Pegar cada caracter
  • Converter para byte (no seu caso em particular acho melhor que usar o String.getBytes())
  • O byte (que é um inteiro de -128 a +127) deve ser convertido para um inteiro de 0 a 255 (dica: fazer um “&” com o valor 0xFF)
  • Somar 0x100 a esse byte, para que tenhamos valores de 0x100 a 0x1FF (para que toHexString volte uma string de “100” a “1ff”, preservando os zeros à direita)
  • Pegar o retorno e converter para maiúscula, e tirar o “1” que ficou à esquerda, como resultado teremos uma string de “00” a “FF”.

Exemplo (você tem de modificar isto…):

String s = "ABC";
int i = 0;
char c = s.charAt(i);
String hex = Integer.toHexString((c & 0xFF) | 0x100).substring(1,3).toUpperCase();

hex contém o valor hexa do caracter A (que é “41”.

Valeu pessoal, mas para funcionar eu utilizei o código:

primeira_string = JOptionPane.showInputDialog( "Digite o Codigo de Barras" ); 
	    
	    StringBuffer meio_string = new StringBuffer(primeira_string); 
	    for (int i = 0; i < primeira_string.length(); i++) { 
	        char ch = primeira_string.charAt(i); 
	        if (ch < 0x10)
	            meio_string.append(Integer.toHexString(ch & 0xFF)); 
	    }

Abraço!