Ir para conteúdo
Fórum Script Brasil
  • 0

Ler comandos da Impressora de arquivo .ini


Alexandre Prz

Pergunta

O título quase diz tudo... tenho um código de impressão e também um arquivo de config.ini

Gostaria de saber como faço para ler o comando ESC/POS que está salvo como texto no .ini e usar ele no meu código, qual conversão usar ?!

Exemplo esse comando: 

     WriteLn(Impressora, chr($1B) + '+' + '0' + chr($05) + chr($02) + '1'+buscaitem.FieldByName('nome').AsString);

Imprime o texto a seguir dele em formato grande, mas se eu salvo esse comando no .ini e faço a leitura dele e mudo o código para : 

     WriteLn(Impressora, txtgrande+buscaitem.FieldByName('nome').AsString);

Ele imprime o código como string normal... ainda estou a procura de qual conversão usar para realizar tal tarefa.

 

Link para o comentário
Compartilhar em outros sites

16 respostass a esta questão

Posts Recomendados

  • 0

 

 

Ler Arquivos .INI   exemplos no link

https://www.google.com.br/webhp?sourceid=chrome-instant&rlz=1C1RLNS_pt-BRBR672BR672&ion=1&espv=2&ie=UTF-8#q=ler+arquivo+ini+delphi

 

Este é um exemplo de como imprimir direto para impressora:

procedure TForm1.Button1Click(Sender: TObject); 
var 
F : TextFile; 
i : integer; 
begin 
AssignFile(F,'LPT1'); 
Rewrite(F); 
i := 0; 
Writeln(F,'Teste de impressao - Linha 0'); 
Writeln(F,'Teste de impressao - Linha 1'); 
Writeln(F,#27#15+'Teste de Impressão - Linha 2'); 
Writeln(F,'Teste de impressao - Linha 3'); 
Writeln(F,#27#18+'Teste de Impressão - Linha 4'); 
Writeln(F,'Teste de impressao - Linha 5'); 
Writeln(F,#12); // Ejeta a página 
CloseFile(F); 
end; 

OBS: faça um loop para ler um arquivo ini e vá colocando os comandos lidos, dentro dos comandos Writeln 

abraço
 

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado pela resposta Sir. Jhonas, mas talvez você não tenha entendido minha questão...

O que eu quero é armazenar um comando ESC/POS dentro de um arquivo de configuração .ini e ler esse comando para usa-lo durante a impressão.

Armazenar o comando e ler, não é o problema, o problema está na hora de usa-lo dentro da linha de impressão WriteLn.

O comando WriteLn envia ele como uma string normal, e não como comando ESC/POS, assim na hora da impressão ele imprime como se fosse apenas uma mera String.

Link para o comentário
Compartilhar em outros sites

  • 0

Na impressora que um dos clientes possui, que é Diebold, o comando dessa forma:

    WriteLn(Impressora, chr($1B) + '+' + '0' + chr($05) + chr($02) + '1'+buscaitem.FieldByName('nome').AsString);

Imprime da forma que eu quero, com o texto a seguir grande ( expandido ).

Só que agora um outro cliente possui Bematech, e o código da bematech para executar o mesmo efeito de texto é diferente.

O que estou pretendendo fazer é salvar o comando que faz a impressão nesse formato em um .ini, realizar a leitura e passar para um variável.

Então em vez de colocar diretamente :

     WriteLn(Impressora, chr($1B) + '+' + '0' + chr($05) + chr($02) + '1'+buscaitem.FieldByName('nome').AsString);

colocaria por exemplo 

     WriteLn(Impressora, comandolidoini+buscaitem.FieldByName('nome').AsString);

Ai o problema é que, salvando o comando no arquivo .ini e lendo como String, em vez da impressora ler como comando ESC, ela ler como string normal, ou seja, imprime ele por extenso...

Não estou acertando nessa conversão...

A solução que estou a usar no momento, é de  já guardar todos os comandos em constantes e ler do .ini apenas o modelo da Impressora e baseado no modelo, ele usa o seu respectivo comando.

Editado por Alexandre Prz
Link para o comentário
Compartilhar em outros sites

  • 0

Name

WriteLn Procedure

Syntax

procedure WriteLn(Expr:Width:Precision; ...);
procedure WriteLn(var F: TextFile; Expr:Width:Precision; ...);

Description

WriteLn is just like the Write procedure, except it prints a line ending after printing its arguments. A line ending is a carriage return followed by a line feed (#13#10). With no arguments, or only a TextFile argument, WriteLn prints only a line ending.

-----------------------------------------------------------------------------------------------------------------------------------------

pelo que deu para entender, se voce colocar o comando diretamente, ele executa corretamente e se colocar em uma variavel não ... é isso ?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...