Impressão Direta
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
Curtidas 0
Respostas
Anonymous
03/02/2003
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
GOSTEI 0
Ildefonso
03/02/2003
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)
GOSTEI 0