Imprimir em impressora Zebra TLP 2844

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 ");
}

}

Bom, acho que seu problema é na linguagem da impressão. Essa impressora é uma evolução da Eltron 2742. Essas impressoras usam uma linguagem própria. No seu caso deve ser ZPL e para as Eltron EPL. São na verdade textos script que são passados para a impressora e ela processa e imprime. Dá uma procurada por isso. A linguagem não é difícil, já tive que usar e ela tem uma qualidade de impressão maior que a obtida através do driver padrão.

abraços,

otávio

Ola, estou tendo exatamente o mesmo problema. Ja peguei alguns exemplos enviando via script mas continuando apenas sendo enviado para o spool mas nada sai na impressora, sem nenhuma mensagem de erro.

Grato
Magno
magno_jr@terra.com.br

Oi Magno jr

Minha empresa atua há 18 anos com os equipamentos da Zebra, não sou da área técnica sou da comercial mas temos um canal no youtube que tem diversos videos de instalação, configuração de impressoras zebra. Da uma olhada lá http://www.youtube.com/results?search_query=mastecstore&oq=mastecstore&gs_l=youtube.3...679.1420.0.1736.5.5.0.0.0.0.289.1038.1j0j4.5.0...0.0...1ac.j6pNo0lLbDg ou entra no youtube e digita mastecstore.

Caso não encontre a solução, me avise que peço pra algum de nossos técnicos postar uma ajuda pra você aqui pelo fórum

Abraços,

Silvana Santos
Mastecstore
www.mastecstore.com.br
Fone: 11-3683-5251

Olá amigos, estou com grandes problemas,
Tenho um Defy+ e um impressora ZEBRA TLP2844 preciso apenas dar um “alo impressora no papel dela”

Criei um projeto e colei o codigo, agora ele acha a impressora fica até ON:
agora só precisaria mesmo imprimir vou colocar meu código e se puderem ajudar agradeço,
pois estou precisando muito.

Obrigado.

public void onClick(View v) {
			BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
			if (mBluetoothAdapter == null) {
			    MensagemAlerta("Erro", "Dispositivo não possui bluetooth");
			} else {
				if (!mBluetoothAdapter.isEnabled()) {
				    Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
	         	    startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
				}
				
				Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
			    
		        ArrayList<String> impressoras = new ArrayList<String>();
		        ArrayAdapter<String> mArrayAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, impressoras);
				
				if (pairedDevices.size() > 0) { // Verifica se tem algum dispositivo pareado
					
				    // Monta uma array com os dispositivos que estiverem pareados...
				    for (BluetoothDevice device : pairedDevices) {
				    	mArrayAdapter.add(device.getName() + "\n" + device.getAddress());
				    }
				}				
				// Carrega a lista com os dispositivos encontrados
				mView = (ListView) findViewById(R.id.lista);
				mView.setAdapter(mArrayAdapter);
				
				// Precisa pegar o MAC Address na mArrayAdapter
				
				String address = "00:02:72:E3:8E:57";
                
                BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address); 
                
                // UUID é um identificador universal usados nos dispositivos bluetooth com 128 bits
                // serve apenas para evitar conflito na hora de comunicar com os dispositivos
                
                UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

                
                try {
                    mBluetoothSocket = device.createRfcommSocketToServiceRecord(uuid);
                    mBluetoothSocket.connect();
                    
                    in = mBluetoothSocket.getInputStream();
                    out = mBluetoothSocket.getOutputStream();
    
                    
                    [b]
                    
                   /***************************************************************
                    * 
                    * 
                    * 
                    *  Ate aqqui o Led da impressora esta on (isso qure dizer )
                    * acho que conectou
                    * Pergunta: Como eu faco para dar um COMANDO ESC/POS ou um System.ou.println("ALO IMPRESSORA "):
                    ****************************************************************/
                    [/b]

                } catch (IOException erro){
                	MensagemAlerta("Erro", "Não foi conectar com o dispositivo." + erro);
                	
                }
           
                                    
		
			
			}
			
		}
		
		
	    });