Impressão Direta
03/02/2003
0
Caros amigos,
Alguem conhece algum componente ou alguma forma de se fazer impressão em modo texto que seja compatível com várias impressoras?
Desde já agradeço.
Alguem conhece algum componente ou alguma forma de se fazer impressão em modo texto que seja compatível com várias impressoras?
Desde já agradeço.
Anonymous
Curtir tópico
+ 0
Responder
Posts
03/02/2003
Anonymous
Eu particularmente uso o componente RDPrint da Deltress, acesse o site www.deltress.com.br para pegar um demo.
Mas você também pode fazer o seguinte código:
procedure TFormLocacao.Locao1Click(Sender: TObject);
var
F : TextFile;
i : integer;
NomeCli : string;
Hora : String;
begin
Hora := TimeToStr(Time);
{Impressao do recibo}
AssignFile(F,´LPT1´);
Rewrite(F);
i := 0;
Writeln(F,´----------------------------------------------´);
Writeln(F,´ ***** G A M E O F F I C E ***** ´);
Writeln(F,´ AV. DR. Renato de Andrade Maia,362 Cid Maia ´);
Writeln(F,´ Guarulhos - Sao Paulo ´);
Writeln(F,´----------------------------------------------´);
Writeln(F,´ RECIBO DE LOCACAO´+´ ´+ txtData.Text + ´ ´ + Hora);
Writeln(F,´´);
Writeln(F,txtCodCli.text + ´ ´ + NomeCli);
Writeln(F,´----------------------------------------------´);
Writeln(F,´COD TITULO PRECO D.DEVOL ´); {titulos das colunas}
tbReciboLoc.First;
While not tbReciboLoc.EOF do
begin
{ dados de cada coluna vindo de um banco de dados}
Writeln(F,+format(´¬5s´ ,[tbReciboLocLoc_Cod_Fita.AsString]) +´ ´
+format(´¬25s´,[tbReciboLocLoc_Titulo_Fita.AsString])+´ ´
+format(´¬4.2f´ ,[tbReciboLocLoc_Preco.AsFloat]) +´ ´
+format(´¬8s´ ,[tbReciboLocLoc_Data_Dev.AsString]) );
tbReciboLoc.Next;
end;
Writeln(F,´´);
Writeln(F,´ TOTAL A PAGAR = R$´+format(´¬4.2f´,[StrToFloat(txtTotal.text)]));
Writeln(F,´´);
Writeln(F,´´);
Writeln(F,´Recebi os Produtos Acima Citados: ´);
Writeln(F,´´);
Writeln(F,´´);
Writeln(F,´´);
Writeln(F,´ ----------------------------- ´);
Writeln(F,´ Assinatura ´);
End;
Paulo Schmidt
www.compuserv.com.br/pauloschmidt
Mas você também pode fazer o seguinte código:
procedure TFormLocacao.Locao1Click(Sender: TObject);
var
F : TextFile;
i : integer;
NomeCli : string;
Hora : String;
begin
Hora := TimeToStr(Time);
{Impressao do recibo}
AssignFile(F,´LPT1´);
Rewrite(F);
i := 0;
Writeln(F,´----------------------------------------------´);
Writeln(F,´ ***** G A M E O F F I C E ***** ´);
Writeln(F,´ AV. DR. Renato de Andrade Maia,362 Cid Maia ´);
Writeln(F,´ Guarulhos - Sao Paulo ´);
Writeln(F,´----------------------------------------------´);
Writeln(F,´ RECIBO DE LOCACAO´+´ ´+ txtData.Text + ´ ´ + Hora);
Writeln(F,´´);
Writeln(F,txtCodCli.text + ´ ´ + NomeCli);
Writeln(F,´----------------------------------------------´);
Writeln(F,´COD TITULO PRECO D.DEVOL ´); {titulos das colunas}
tbReciboLoc.First;
While not tbReciboLoc.EOF do
begin
{ dados de cada coluna vindo de um banco de dados}
Writeln(F,+format(´¬5s´ ,[tbReciboLocLoc_Cod_Fita.AsString]) +´ ´
+format(´¬25s´,[tbReciboLocLoc_Titulo_Fita.AsString])+´ ´
+format(´¬4.2f´ ,[tbReciboLocLoc_Preco.AsFloat]) +´ ´
+format(´¬8s´ ,[tbReciboLocLoc_Data_Dev.AsString]) );
tbReciboLoc.Next;
end;
Writeln(F,´´);
Writeln(F,´ TOTAL A PAGAR = R$´+format(´¬4.2f´,[StrToFloat(txtTotal.text)]));
Writeln(F,´´);
Writeln(F,´´);
Writeln(F,´Recebi os Produtos Acima Citados: ´);
Writeln(F,´´);
Writeln(F,´´);
Writeln(F,´´);
Writeln(F,´ ----------------------------- ´);
Writeln(F,´ Assinatura ´);
End;
Paulo Schmidt
www.compuserv.com.br/pauloschmidt
Responder
03/02/2003
Ildefonso
Olá, Alex.
Cada impressora tem seu próprios códigos de inicialização e encerramento. O padrão disseminado pela IBM (Epson, Canon, OkiData, etc.) pode ser coincidente em muitas coisas mas, mesmo assim, haverá algo que você não conseguirá transportar de uma impressora para outra.
Para mandar dados diretamente para as impressoras, abra um arquivo na porta [b:6096c93a23]PRN[/b:6096c93a23] ou [b:6096c93a23]LPT1[/b:6096c93a23] e envie registros para lá, tal como se envia para um arquivo comum.
Bom trabalho. 8)
Cada impressora tem seu próprios códigos de inicialização e encerramento. O padrão disseminado pela IBM (Epson, Canon, OkiData, etc.) pode ser coincidente em muitas coisas mas, mesmo assim, haverá algo que você não conseguirá transportar de uma impressora para outra.
Para mandar dados diretamente para as impressoras, abra um arquivo na porta [b:6096c93a23]PRN[/b:6096c93a23] ou [b:6096c93a23]LPT1[/b:6096c93a23] e envie registros para lá, tal como se envia para um arquivo comum.
Bom trabalho. 8)
Responder
Clique aqui para fazer login e interagir na Comunidade :)