Impressora Matricial, Posicionar Horizontalmente

11 respostas
marcelohonsa

Algum aqui sabe a sintaxe do comando para posicionar o local de impressão de uma impressora Epson (ESC-P), horizontalmente.
tipo, quero que um determinado campo seja impresso na coluna 10 da linha corrente, outro na coluna 25 da mesma linha…
Estou montando um relatório para imprimir em um formulário continuo e preciso disso…
Se alguem souber eu agradeço!

11 Respostas

marcelohonsa

Ninguém aqui nunca fez isso não??

leonardom

Marcelo, se você está imprimindo direto para a porta da impressora (lpt1) acho que vai conseguir fazer isso somente usando espaços em branco. Tipo você tem que formatar a linha antes com os devidos espaços e valores e depois imprimi-la, isto é envia-la para porta da impressora.

marcelohonsa

Encontrei este comando, mas não sei se estou utilizando incorretamente ou se não entendi exatamente o que ele faz.
Mas pelo que li na documentação ele imprime a string a partir de n1 até n2…
Porém não está funcionando…

ESC $ n1 n2
Estabelece a posição de impressão n1 pontos a partir do início da linha
0<=n2<=1

Encontrei aqui : http://sd.epson.pt/support/download/data/faq/escpos.pdf#search=%22ESC%20%24%20comando%20epson%20horizontal%22

Alguém têm alguma idéia??

V

Ola, Bom dia.
Estou tendo problemas para imprimir diretamente para a impressora matricial.
Como voce faz essa impressao??

Valew!

marcelohonsa

Amanhã posto aqui pra vc…

V

Ok. Valew

V

Ainda aguardo sua ajuda!

marcelohonsa

Bom, está ai a classe, pra mim ta funcionando 100%.
Se tiver alguma dúvida com relação ao código pode postar que respondo…
Abraços…

/**

  • Impressão de Documento em Matricial
  • @version 1.0 - Date: 2006-08-24
    */
import <a href="http://java.io">java.io</a>.*;

import java.lang.StringBuffer;

public class Capa {

public static void main( String[] args) throws IOException {
FileOutputStream outputFile = new FileOutputStream("LPT1:"); 
          PrintWriter out = new PrintWriter(outputFile); 
          
          

            final String RESET = "\u001B" + "@"; 
            
            final String TAMANHO_DA_PAGINA = "\u001B" + "C" + (char)33;
            
            final String TABELA_CARACTERES = "\u001B" + "t" + (char)0;
            
            final String TABELA_CARACTERES_2 = "\u001B" + "(t" + (char)3 + (char)0 + (char)0 + (char)25 + (char)0;                
            final String FORM_FEED = "\f";                 
            final String NOVA_LINHA = "\n";                 
            final String ALIMENTA_PAGINA = "\u000C";                 
            final String TAMANHO_10 = "\u001B" + "!" + (char)0;
            final String TAMANHO_12 = "\u001B" + "M";
            final String TAMANHO_15 = "\u001B" + "g";
            final String TAMANHO_56 = "\u001B" + "!" + (char)56;
            final String ALINHA_DIREITA = "\u001B" + "a" + (char)0;
            final String ALINHA_ESQUERDA = "\u001B" + "a" + (char)1;
            final String ALINHA_CENTRO = "\u001B" + "a" + (char)2;
            final String ALINHA_TOTAL = "\u001B" + "a" + (char)3;
            
            final String COLUNA_A = "\u001B" + "$" + (char)1;
            final String COLUNA_B = "\u001B" + "$" + (char)3;
            final String COLUNA_C = "\u001B" + "$" + (char)5;
            final String COLUNA_D = "\u001B" + "$" + (char)7;
            
            final char vazio = ' ';
            final String linhaHorizontal = "---------------------------------------------------------------------------------";
            System.out.println("Tamanho : " + linhaHorizontal.length());  
            StringBuffer buffer = new StringBuffer();
            
            buffer.setLength(2370);
            
            int novaLinha = 0;
            for (int i = 0; i < 2370; i++)
                buffer.setCharAt(i, vazio);

            
            //INICIO DA LINHA 1
            buffer = replaceCaracteres(30, "CAPA DE RVA", buffer);
            buffer = replaceCaracteres(60, "123456", buffer);
            //FIM LINHA 1 INICIO LINHA 2
            buffer = replaceCaracteres(67, linhaHorizontal, buffer);
            //FIM LINHA 2 INICIO LINHA 3  
            buffer = replaceCaracteres(149, "NOME     :", buffer);
            buffer = replaceCaracteres(162, "FULANO DE TAL", buffer);
            buffer = replaceCaracteres(205, "RECEBER DIA : ", buffer);
            buffer = replaceCaracteres(219, "24/08/2006", buffer);
            //FIM LINHA 3 INICIO LINHA 4
            buffer = replaceCaracteres(229, "NUM. RVA :", buffer);
            buffer = replaceCaracteres(242, "123456", buffer);
            buffer = replaceCaracteres(285, "PERIODO     : ", buffer);
            buffer = replaceCaracteres(299, "TARDE", buffer);
            //FIM LINHA 4 INICIO LINHA 5
            buffer = replaceCaracteres(305, "ASSINAT. :", buffer);
            buffer = replaceCaracteres(318, "RENOVACAO", buffer);
            //FIM DA LINHA 5 INICIO DA LINHA 6
            buffer = replaceCaracteres(376, buffer.substring(376, 446), buffer);
            //FIM LINHA 6 INICIO LINHA 7
            buffer = replaceCaracteres(447, "VEND.(A) :", buffer);
            buffer = replaceCaracteres(460, "TMK16 JANETE", buffer);
            //FIM LINHA 7 INICIO LINHA 8
            buffer = replaceCaracteres(518, "----------------------------ENDEREÇO PARA RECEBIMENTO---------------------------", buffer);
            //FIM LINHA 8 INICIO LINHA 9
            buffer = replaceCaracteres(599, "LOGRAD.  :", buffer);
            buffer = replaceCaracteres(612, "AV. T-13 APTO. 404", buffer);
            buffer = replaceCaracteres(655, "NUMERO      : ", buffer);
            buffer = replaceCaracteres(669, "136", buffer);                
            //FIM LINHA 9 INICIO LINHA 10
            buffer = replaceCaracteres(676, "COMPLEM. :", buffer);
            buffer = replaceCaracteres(689, "EDIFICIO IPANEMA", buffer);
            //FIM LINHA 10 INICIO LINHA 11
            buffer = replaceCaracteres(747, "BAIRRO   :", buffer);
            buffer = replaceCaracteres(760, "SETOR BELA VISTA", buffer);
            buffer = replaceCaracteres(803, "CEP         : ", buffer);
            buffer = replaceCaracteres(817, "74.000-000", buffer);                
            //FIM LINHA 11 INICIO LINHA 12
            buffer = replaceCaracteres(828, "REFEREN. :", buffer);
            buffer = replaceCaracteres(841, "CALDO & CIA", buffer);
            //FIM LINHA 12 INICIO LINHA 13                
            buffer = replaceCaracteres(909, "TELEFONE : ", buffer);
            buffer = replaceCaracteres(922, "62-3255-7663", buffer);                
            //FIM LINHA 12 INICIO LINHA 13                                
            buffer = replaceCaracteres(990, buffer.substring(990, 1070), buffer);                
            //FIM LINHA 13 INICIO LINHA 14
            buffer = replaceCaracteres(1071, "-----------------------------------OBSERVAÇOES----------------------------------", buffer);
            //FIM LINHA 14 INICIO LINHA 15                
            buffer = replaceCaracteres(1152, "-----------------------------------OBSERVAÇOES----------------------------------", buffer);
            //FIM LINHA 15 INICIO LINHA 16                                
            buffer = replaceCaracteres(1232, "-----------------------------------OBSERVAÇOES----------------------------------", buffer);
            //FIM LINHA 16 INICIO LINHA 17                                
            buffer = replaceCaracteres(1312, "-----------------------------------OBSERVAÇOES----------------------------------", buffer);
            //FIM LINHA 17 INICIO LINHA 18                                
            buffer = replaceCaracteres(1392, "-----------------------------------OBSERVAÇOES----------------------------------", buffer);                
            //FIM LINHA 18 INICIO LINHA 19                                
            buffer = replaceCaracteres(1473, "--------------------------------------------------------------------------------", buffer);                                
            //FIM LINHA 19 INICIO LINHA 20                                
            buffer = replaceCaracteres(1554, "                       * * *  PARA USO DO RECEBEDOR  * * *                      ", buffer);                                                
            //FIM LINHA 20 INICIO LINHA 21                                
            buffer = replaceCaracteres(1635, "--------------------------------------------------------------------------------", buffer);                                
            //FIM LINHA 21 INICIO LINHA 22
            buffer = replaceCaracteres(1716, "                                                      | MOTIVO DO CANCELAMENTO  ", buffer);                
            //FIM LINHA 22 INICIO LINHA 23
            buffer = replaceCaracteres(1797, "                                                      |                         ", buffer); 
            //FIM LINHA 23 INICIO LINHA 24
            buffer = replaceCaracteres(1878, "                                                      | (  ) PAGOU NO BANCO     ", buffer); 
            //FIM LINHA 24 INICIO LINHA 25
            buffer = replaceCaracteres(1959, "                                                      | (  ) PROBLEMA FINANCEIRO", buffer); 
            //FIM LINHA 25 INICIO LINHA 26
            buffer = replaceCaracteres(2040, "                                                      | (  ) COMPROU DO CORRETOR", buffer); 
            //FIM LINHA 26 INICIO LINHA 27
            buffer = replaceCaracteres(2121, "                                                      |  RVA N. ______________  ", buffer);                 
            //FIM LINHA 27 INICIO LINHA 28                                
            buffer = replaceCaracteres(2202, "--------------------------------------------------------------------------------", buffer);                                                
            
            
            out.print(RESET);               
            out.print(TAMANHO_DA_PAGINA);
            out.print(TABELA_CARACTERES);
            out.print(TABELA_CARACTERES_2);                                
            
            //LINHA 1                
            out.print(TAMANHO_10);
            out.print(buffer.substring(0, 29));
            out.print(TAMANHO_56); 
            out.print(buffer.substring(30, 41));
            out.print(TAMANHO_10); 
            out.print(buffer.substring(42, 59));
            out.print(TAMANHO_56); 
            out.print(buffer.substring(60, 66));
            out.println(TAMANHO_10); 
            out.print(buffer.substring(67, 78));
            //FIM LINHA 1 INICIO LINHA 2
            out.print(TAMANHO_10); 
            out.print(buffer.substring(79, 148));                
            //FIM LINHA 2 INICIO LINHA 3
            out.println(buffer.substring(149, 229));
            //FIM DA LINHA 3 INICIO DA LINHA 4
            out.println(buffer.substring(229, 304));
            //FIM DA LINHA 4 INICIO DA LINHA 5
            out.println(buffer.substring(305, 375));                
            //FIM DA LINHA 5 INICIO DA LINHA 6
            out.println(buffer.substring(376, 446));                
            //FIM DA LINHA 6 INICIO DA LINHA 7
            out.println(buffer.substring(447, 517));                                
            //FIM DA LINHA 7 INICIO DA LINHA 8
            out.println(buffer.substring(518, 598));                                                
            //FIM DA LINHA 8 INICIO DA LINHA 9
            out.println(buffer.substring(599, 675));                                                                
            //FIM DA LINHA 9 INICIO DA LINHA 10
            out.println(buffer.substring(676, 746));                                                                                
            //FIM DA LINHA 10 INICIO DA LINHA 11
            out.println(buffer.substring(747, 827));                                                                                
            //FIM DA LINHA 11 INICIO DA LINHA 12
            out.println(buffer.substring(828, 908));
            //FIM DA LINHA 12 INICIO DA LINHA 13
            out.println(buffer.substring(909, 989));                
            //FIM DA LINHA 12 INICIO DA LINHA 13
            out.println(buffer.substring(990, 1070));                
            //FIM DA LINHA 13 INICIO DA LINHA 14
            out.println(buffer.substring(1071, 1151));                                
            //FIM DA LINHA 14 INICIO DA LINHA 15
            out.println(buffer.substring(1152, 1232));                                
            //FIM DA LINHA 15 INICIO DA LINHA 16
            out.println(buffer.substring(1232, 1312));                                
            //FIM DA LINHA 16 INICIO DA LINHA 17
            out.println(buffer.substring(1312, 1392));                                
            //FIM DA LINHA 17 INICIO DA LINHA 18
            out.println(buffer.substring(1392, 1472));                                                
            //FIM DA LINHA 18 INICIO DA LINHA 19
            out.println(buffer.substring(1473, 1553));                                                                
            //FIM DA LINHA 19 INICIO DA LINHA 20
            out.println(buffer.substring(1554, 1634));                                                                
            //FIM DA LINHA 20 INICIO DA LINHA 21
            out.println(buffer.substring(1635, 1715));                                                                                
            //FIM DA LINHA 21 INICIO DA LINHA 22
            out.println(buffer.substring(1716, 1796));
            //FIM DA LINHA 22 INICIO DA LINHA 23
            out.println(buffer.substring(1797, 1877));
            //FIM DA LINHA 23 INICIO DA LINHA 24
            out.println(buffer.substring(1878, 1958));
            //FIM DA LINHA 24 INICIO DA LINHA 25
            out.println(buffer.substring(1959, 2039));
            //FIM DA LINHA 25 INICIO DA LINHA 26
            out.println(buffer.substring(2040, 2120));
            //FIM DA LINHA 26 INICIO DA LINHA 27
            out.println(buffer.substring(2121, 2201));                
            //FIM DA LINHA 27 INICIO DA LINHA 28
            out.println(buffer.substring(2202, 2282));
            
            
            out.print(ALIMENTA_PAGINA);
            out.close(); 
            outputFile.close();

}

public static StringBuffer replaceCaracteres(int inicio, String str, StringBuffer buffer)

{

int indexChar = 0;

int tamanho = str.length();

char vetorChar[] = str.toCharArray();
for (int i = inicio; i < (inicio + tamanho); i++)
         {
            buffer.setCharAt(i, vetorChar[indexChar]);
            indexChar++;
         }
            
        return buffer;
}

}

V

Certo, Mas nesse exemplo vc gera um arquivo LPT1: nao é??
Dai entao voce manda Imprimir esse arquivo.

Ok. E como vc imprime esse arquivo?

Desde ja agradeco ai pela tua ajuda!

marcelohonsa

Veja bem :

//Aqui eu gero um Fluxo de Arquivo na porta LPT1, que é a default para impressoras em SO Windows
FileOutputStream output = new FileOutputStream(“LPT1”);

//Aqui é onde eu gero um objeto da classe PrinterWrite passando como parâmetro o FileOutputStream gerado anteriormente. É esse objeto PrinterWrite que escreve na porta na impressora.
PrinterWrite out = new PrinterWrite(output);

V

Tá, me desculpe.
Hé que estou fazendo isso no linux e nao tenho a porta LPT1.
Entao como ele nao encontra essa porta ele cria um arquivo chamado LPT1.
Vou ter que verificar agora quais as portas que eu devo enviar.
Por padrao é /dev/lp0.

Porem as impressoras instaladas nesta maquina sao todas instaladas por uma VPN.

Mesmo Assim. Obrigado!

Criado 23 de agosto de 2006
Ultima resposta 4 de set. de 2006
Respostas 11
Participantes 3