Jump to content
BHAMF

Como imprimir algo em Pascal

Recommended Posts

BHAMF

Observação: Variáveis não declaradas nesta procedures estão declaradas em outra parte do programa.

 

Estou com uma dúvida sobre como imprimir algo em Pascal, utilizei o seguinte código para um programa que estou fazendo mas a impressora nem deu sinal de que iria imprimir, o código compilou sem nenhum erro. A impressora utilizada era EPSON e era USB.

código usado: 

 O objetivo era imprimira  dados de um cliente que iria fazer uma viagem.

procedure impressaoDeDados;
var
 R : string;
begin
 clrscr;
 gotoxy(2,2);
 write('Tem certeza que deseja imprimir as informa'#135#228'es do cliente ', cliente.escolha, '?'); // Cliente.escolha é a variável que diz o número do cliente.
 writeln;
 write('S/N: ');
 readln(R);

 if (R = 'S') or (R = 's') or (R = 'SIM') or (R = 'Sim') or (R = 'sim') then begin
  writeln;
  write('Imprimindo os dados...'); // Só aparecia a mensagem até aqui, o programa não fechava nem nada.
  writeln;
  PRINTCENTER('Impress'#198'o de informa'#135#228'es do cliente | GDV');
  write(LST, 'Dados do cliente', cliente.escolha, ' da se'#135#198'o/ viagem ', identificacao_ADD_DEL2, '...');
  writeln(LST);
  write(LST, 'Nome do cliente: ', cliente.nome);
  writeln(LST);
  write(LST, 'Telefone do cliente: ', cliente.tel);
  writeln(LST);
  write(LST, 'Data de anivers'#160'rio do cliente: ', cliente.dataAniv);
  writeln(LST);
  write(LST, 'Identidade/CPF do cliente: ', cliente.Ident);
  writeln(LST);
  write(LST, 'Data de ida do cliente: ', cliente.datIda);
  writeln(LST);
  write(LST, 'Data de volta do cliente: ', cliente.DatVLT);
  writeln(LST);
  write(LST, 'Tipo de pagamento efetuado pelo cliente: ', cliente.PagType);
  writeln(LST);
  write(LST, 'Valor do pagamento efetuado pelo cliente: ', cliente.PagVal);
  writeln(LST);
  write(LST, 'Finalizado. GDV ( Gerenciamento de Viagens ).');
  write(LST, #12);
  writeln;
  write('Finalizado. Tecle ENTER.');
  readln;
  clrscr;
  tela_inicial;
 end
  else begin
   if (R = 'N') or (R = 'n') or (R = 'NAO') or (R = 'Nao') or (R = 'nao') or (R = 'N'#199'O') or (R = 'N'#198'o') or (R = 'n'#198'o') then begin

   end
    else begin

    end;
  end;
end;
procedure PRINTCENTER (MENSAGEM : string);
var
 posicao : BYTE;
begin
 posicao := 40 + length(MENSAGEM) div 2;
 writeln(LST, MENSAGEM:posicao);
end;z

Espero uma ajuda, obrigado desde já! 

Brasil, 21:07 | 23/09/2017 (Horário de Brasília) 

Edited by BHAMF
Erro de escrita.

Brenio Hallison A.M. Filho

 

Share this post


Link to post
Share on other sites
BHAMF

Pelo que vi no livro a variável LST, envia o que se deseja ser impresso para a impressora, e o código **Write(t, #12);** dá o comando para a impressora liberar o papel, mas também estava no livro que em algumas impressoras mais modernas isto não funciona, pois este código não é para impressoras USB, só desejo saber como enviar a informação de impressão para uma impressora USB, já que todas as impressoras hoje em dia, as mais famosas são USB, Agradeço desde já!

Só pra esclarecer melhor a dúvida pois faz mais de 3 dias que postei este tópico, tenho certeza de que não sou só eu que possuo esta dúvida, pois procurei em vários sites pela internet e não achei nada para solucionar minha dúvida, e, os que eu achei, dizia a mesma coisa sobre impressão, ou seja, sobre a variável LST. Espero ajuda, obrigado a todos vocês do Portugal a Programar :)

Brasil, 22:23 29/09/2017 (Horário de Brasília)

Edited by BHAMF

Brenio Hallison A.M. Filho

 

Share this post


Link to post
Share on other sites
josehenrique

Olá ainda está com o problema ?

É obrigatório você utilizar impressão em modo "DOS" ou poderia ser impresso utilizando a Dll da impressora ?

Talvez esse exemplo possa lhe ajudar !

https://mega.nz/#!89RxVJ6T

Caso não te atenda, fica uma dica também, compartilhe a impressora e use o compartilhamento para impressão.

Abraços!

 

Share this post


Link to post
Share on other sites
BHAMF

Sim ainda estou com problema. O que é "Dll"? Obrigado pelo link, se tiver sucesso mandarei uma resposta.


Brenio Hallison A.M. Filho

 

Share this post


Link to post
Share on other sites
BHAMF
Em 06/10/2017 às 16:49, josehenrique disse:

Olá ainda está com o problema ?

É obrigatório você utilizar impressão em modo "DOS" ou poderia ser impresso utilizando a Dll da impressora ?

Talvez esse exemplo possa lhe ajudar !

https://mega.nz/#!89RxVJ6T

Caso não te atenda, fica uma dica também, compartilhe a impressora e use o compartilhamento para impressão.

Abraços!

 

O link está sem a chave de decodificação!


Brenio Hallison A.M. Filho

 

Share this post


Link to post
Share on other sites
josehenrique
Em 07/10/2017 às 18:09, BHAMF disse:

O link está sem a chave de decodificação!

Opa está aqui a chave , perdão.

 

!SEdK8gvoh_ZUpXgWBEBjVNO92fYeXcODZhW_ax7L7lg

 

Share this post


Link to post
Share on other sites
josehenrique
Em 07/10/2017 às 18:09, BHAMF disse:

O link está sem a chave de decodificação!

Amanhã é feriado aqui no Brasil, se quiser ajuda me fale.

meu whatsapp 

+55 12 988121012

Abraços.

 

Share this post


Link to post
Share on other sites
BHAMF

Amigo! Obrigado pela resposta, mas o seu código está em Delphi, e eu não entendo muito bem Delphi pois ainda estou aprendendo o mesmo, mas, pelo o que eu entendi, o código para imprimir algo é #10, certo? Obrigado pela resposta, se possível, mande o código de impressão em Pascal, Turbo Pascal se preferir. Obrigado desde já! Tentarei falar pelo Whatsapp.

23:59 11/10/2017 (Horáriode Brasília) Brasil.


Brenio Hallison A.M. Filho

 

Share this post


Link to post
Share on other sites
BHAMF
Em 06/10/2017 às 16:49, josehenrique disse:

Olá ainda está com o problema ?

É obrigatório você utilizar impressão em modo "DOS" ou poderia ser impresso utilizando a Dll da impressora ?

Talvez esse exemplo possa lhe ajudar !

https://mega.nz/#!89RxVJ6T

Caso não te atenda, fica uma dica também, compartilhe a impressora e use o compartilhamento para impressão.

Abraços!

 

É obrigatório executar a impressão em modo DOS.

B.H.A.M.F.

Natal, RN; Brasil. 17:38 | 28/12/2018 


Brenio Hallison A.M. Filho

 

Share this post


Link to post
Share on other sites
passarito

O #10 é o Line Feed, faz avançar uma linha.

Para ejectar a folha é o #13 (carriage return)

Depois tens uma panóplia de códigos tais como:

#27 + #69 - Negrito

#27 + #70 - Cancela Negrito

#27 + #45 + #49 - Sublinhar

#27 + #45 + #48 - Cancela Sublinhar

Share this post


Link to post
Share on other sites
BHAMF
1 hora atrás, passarito disse:

O #10 é o Line Feed, faz avançar uma linha.

Para ejectar a folha é o #13 (carriage return)

Depois tens uma panóplia de códigos tais como:

#27 + #69 - Negrito

#27 + #70 - Cancela Negrito

#27 + #45 + #49 - Sublinhar

#27 + #45 + #48 - Cancela Sublinhar

Já sei disso, @passarito... O problema é que a impressora não dá nem sinal de que irá iniciar a impressão! 

 


Brenio Hallison A.M. Filho

 

Share this post


Link to post
Share on other sites
passarito

A impressora tem de estar ligada à porta paralela LPT1 (agora os computadores já não trazem essa porta).

Não sei se dará para imprimir para uma impressora ligada a uma LPT1 virtual.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.