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!
Impressora Matricial, Posicionar Horizontalmente
11 Respostas
Ninguém aqui nunca fez isso não??
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.
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??
Ola, Bom dia.
Estou tendo problemas para imprimir diretamente para a impressora matricial.
Como voce faz essa impressao??
Valew!
Amanhã posto aqui pra vc…
Ok. Valew
Ainda aguardo sua ajuda!
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;
}
}
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!
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);
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!