Jump to content
Fórum Script Brasil
  • 0

Ler comandos da Impressora de arquivo .ini


Alexandre Prz
 Share

Question

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 to comment
Share on other sites

16 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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.

Edited by Alexandre Prz
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...