Imprimir uma função que grava txt
Boa tarde galeratenho esse codigo de um sistema, que peguei pra dar manutenção, preciso fazer essa função imprimir
em vez de gravar em txt. como aqui......impressao.SaveToFile(C:\impressaoCastelo.txt);
queria mandar isso direto pra uma impressora generic.
Alguém pode me ajudar?????????????
em vez de gravar em txt. como aqui......impressao.SaveToFile(C:\impressaoCastelo.txt);
queria mandar isso direto pra uma impressora generic.
Alguém pode me ajudar?????????????
//Realizar impressão para o cliente
procedure TfrmPreVenda.imprimeCastelo;
const
cJustif = #27#97#51;
cFJustif = #27#97#52;
cEject = #12;
{ Tamanho da fonte }
c10cpi = #18;
c12cpi = #27#77;
c17cpi = #15;
cIExpandido = #14;
cFExpandido = #20;
{ Formatação da fonte }
cINegrito = #27#71;
cFNegrito = #27#72;
cIItalico = #27#52;
cFItalico = #27#53;
var
F:TextFile;
ini : TLerINI;
i, parcela : Integer;
cabecalho, listaItem, pagamentos, impressao : TStringList;
titulo, porta, obs : String;
b : TBancoDados;
begin
cabecalho := TStringList.Create;
listaItem := TStringList.Create;
pagamentos := TStringList.Create;
impressao := TStringList.Create;
try
if tela = 1 then
begin
titulo := ORCAMENTO;
end
else
begin
titulo := PRE VENDA;
end;
b.consultClientes(codCli);
with DMPrinc do
begin
cabecalho.Add(FormatDateTime(DD/MM/YYYY, Date)+ +FormatDateTime(hh:mm, Time));
cabecalho.Add(edtNroPedido.Text);
cabecalho.Add(edtVendedor.Text);
cabecalho.Add(Copy(CDSClientesNOME.AsAnsiString,1,30)
+ +
CDSClientesCODIGO.AsAnsiString
+ +
FormatDateTime(DD/MM/YYYY, Date));
cabecalho.Add(Copy(CDSClientesENDERECO.AsAnsiString,1,30)
+ +
Copy(CDSClientesBAIRRO.AsAnsiString,1,20)
+ +
Copy(CDSClientesTELEFONE.AsAnsiString,1,16));
if CDSClientesFISICA_JURIDICA.AsAnsiString = Física then
begin
cabecalho.Add(Copy(CDSClientesCIDADE.AsAnsiString,1,20)
+ +
CDSClientesUF.AsAnsiString
+ +
Copy(CDSClientesCPF.AsAnsiString,1,20)
+ +
Copy(CDSClientesRG.AsAnsiString,1,20)
);
end
else
begin
cabecalho.Add(Copy(CDSClientesCIDADE.AsAnsiString,1,20)
+ +
CDSClientesUF.AsAnsiString
+ +
Copy(CDSClientesCPF.AsAnsiString,1,20)
+ +
Copy(CDSClientesRG.AsAnsiString,1,20)
);
end;
cabecalho.Add(Copy(CDSClientesENDERECO_COBRANCA.AsAnsiString,1,30)
+ +
Copy(CDSClientesBAIRRO_COBRANCA.AsAnsiString,1,20)
+ +
Copy(CDSClientesTELEFONE_COBRANCA.AsAnsiString,1,16));
cabecalho.Add(Copy(CDSClientesENDERECO_ENTREGA.AsAnsiString,1,30)
+ +
Copy(CDSClientesBAIRRO_ENTREGA.AsAnsiString,1,20)
+ +
Copy(CDSClientesTELEFONE_ENTREGA.AsAnsiString,1,16));
for i := 0 to memoObs.Lines.Count - 1 do
begin
obs := obs + +memoObs.Lines.Strings[i];
end;
cabecalho.Add(Copy(obs,1,60));
CDSDadosGrid.First;
while not CDSDadosGrid.Eof do
begin
listaItem.Add(StringOfChar( ,10 - Length(CDSDadosGridCODNOME.AsAnsiString))+ CDSDadosGridCODNOME.AsAnsiString+ +
StringOfChar( ,8 - Length(CDSDadosGridQTDE.AsAnsiString))+CDSDadosGridQTDE.AsAnsiString+
StringOfChar( ,5 - Length(CDSDadosGridUNI.AsAnsiString))+CDSDadosGridUNI.AsAnsiString+
StringOfChar( ,35 - Length(Copy(CDSDadosGridDESCRICAO.AsAnsiString,1,30)))+Copy(CDSDadosGridDESCRICAO.AsAnsiString,1,30)+
StringOfChar( ,15 - Length(FormatFloat(###,##0.00,CDSDadosGridVALUNIT.AsFloat)))+FormatFloat(###,##0.00,CDSDadosGridVALUNIT.AsFloat)+
StringOfChar( ,15 - Length(FormatFloat(###,##0.00,CDSDadosGridDAVAL.AsFloat)))+FormatFloat(###,##0.00,CDSDadosGridDAVAL.AsFloat)+
StringOfChar( ,15 - Length(FormatFloat(###,##0.00,CDSDadosGridVALTOTAL.AsFloat)))+FormatFloat(###,##0.00,CDSDadosGridVALTOTAL.AsFloat)
);
CDSDadosGrid.Next;
end;
parcela := 0;
CDSPagamento.First;
while not CDSPagamento.Eof do
begin
parcela := parcela + 1;
CDSPagamento.Next;
end;
pagamentos.Add(IntToStr(parcela)+ X );
pagamentos.Add(lblSubTotal.Caption);
pagamentos.Add(edtTotal.Text);
castelo(cabecalho,listaItem,pagamentos);
impressao.Add(cabecalho.Text);
impressao.Add(listaItem.Text);
impressao.Add(pagamentos.Text);
impressao.SaveToFile(C:\impressaoCastelo.txt);
end;
except
end;
end;Guilherme
Curtidas 0
Respostas
Deivison Melo
12/06/2012
Seria algo como:
AssignPrn(c:\seu_arquivo_txt.txt);
AssignPrn(c:\seu_arquivo_txt.txt);
GOSTEI 0
Guilherme
12/06/2012
Mas não quero imprimir o txt, eu quero que no lugar de salver ele
imprime direto na impressora
imprime direto na impressora
GOSTEI 0
Joel Rodrigues
12/06/2012
Você tem uma variável F do tipo TextFile. Basta associá-la à porta LPT1 e passar a escrever direto nela.
GOSTEI 0
Guilherme
12/06/2012
Você tem uma variável F do tipo TextFile. Basta associá-la à porta LPT1 e passar a escrever direto nela.
Pode me dar um exemplo????
acho que não entendi muito bem!!!!
GOSTEI 0
Joel Rodrigues
12/06/2012
Testa o seguinte;
O código é autoexplicativo.
var P : TextFile; begin AssignFile(P, ´LPT1´); ReWrite(P); Writeln(P, ´Testando impressão...´); Writeln(Q, ´E´+#13); CloseFile(P); end;
O código é autoexplicativo.
GOSTEI 0
Guilherme
12/06/2012
Vou testar, agora entendi!!!!!!!!!!!!
obrigado!!!!!!!!!
obrigado!!!!!!!!!
GOSTEI 0