imprimir direto na impressora nao fiscal com VDOPRINT
boa noite..to precisando montar um cupom nao fiscal e jogar direto para impressora...alguem ja fez? pode me ajudar? to agarrado...fiz um no quickreport mas sai muito lento...me disseram para tentar o vdoprint....mas nao sei usar...alguem ja fez um cupom usando este componente?aguardo retorno...
Jose Maria
Curtidas 0
Respostas
Wesley Yamazack
06/08/2013
Opa Jose, na época que fiz um programinha de pizzaria, eu fiz isso.
Mas eu jogava o conteúdo num memo, depois mandava imprimir o memo pelo print. Usando uma impressora instalada text-only
abs
Mas eu jogava o conteúdo num memo, depois mandava imprimir o memo pelo print. Usando uma impressora instalada text-only
abs
GOSTEI 0
Deivison Melo
06/08/2013
Siga o que o Wesley recomendou ou ainda faça a emissão usando o sw_hide (para esconder a tela)...
Veja o link abaixo:
http://www.planetadelphi.com.br/dica/5139/executando-um-programa-atraves-de-outro
Veja o link abaixo:
http://www.planetadelphi.com.br/dica/5139/executando-um-programa-atraves-de-outro
GOSTEI 0
Mauricio Rodrigues
06/08/2013
Eu uso esse comando para mandar o cupom para impressora não fiscal
var
Porta:String;
F: TextFile;
begin
AssignFile(F, Porta);
Rewrite(F);
WriteLn(F, trim(Cabecalho.Text));
// WriteLn(F,'Vendedor '+FrmFimVenda.Label6.Caption);
WriteLn(F, StringOfChar('-', 40));
WriteLn(F, DateToStr(Date) + ' ' + TimeToStr(Time));
WriteLn(F, 'Pedido nº' + ' ' + IdCupum);
WriteLn(F, '----------------------------------------');
CloseFile(f);
na porta se colocar c:\temp\cupom.txt
gera um arquivo texto ou se tiver a porta onde está a conexão da impressora via diretamente para ela.
var
Porta:String;
F: TextFile;
begin
AssignFile(F, Porta);
Rewrite(F);
WriteLn(F, trim(Cabecalho.Text));
// WriteLn(F,'Vendedor '+FrmFimVenda.Label6.Caption);
WriteLn(F, StringOfChar('-', 40));
WriteLn(F, DateToStr(Date) + ' ' + TimeToStr(Time));
WriteLn(F, 'Pedido nº' + ' ' + IdCupum);
WriteLn(F, '----------------------------------------');
CloseFile(f);
na porta se colocar c:\temp\cupom.txt
gera um arquivo texto ou se tiver a porta onde está a conexão da impressora via diretamente para ela.
GOSTEI 0
Valdson Oliveira
06/08/2013
qual a versao do delphi voce esta usando?
Eu quebrei a cabeça por dias ou semanas....rs
precisava fazer um cupom nao fiscal e so consegui fazer no vdoprint delphi 7..
qlq coisa estou a disposiçao.
Eu quebrei a cabeça por dias ou semanas....rs
precisava fazer um cupom nao fiscal e so consegui fazer no vdoprint delphi 7..
qlq coisa estou a disposiçao.
GOSTEI 0
Valdson Oliveira
06/08/2013
qual a versao do delphi voce esta usando?
Eu quebrei a cabeça por dias ou semanas....rs
precisava fazer um cupom nao fiscal e so consegui fazer no vdoprint delphi 7..
qlq coisa estou a disposiçao.
Eu quebrei a cabeça por dias ou semanas....rs
precisava fazer um cupom nao fiscal e so consegui fazer no vdoprint delphi 7..
qlq coisa estou a disposiçao.
GOSTEI 0
Mauricio Rodrigues
06/08/2013
Esse comando serve deste a versão 7 até atual X4.
Qualquer duvido só perguntar.
Qualquer duvido só perguntar.
GOSTEI 0
Jose Maria
06/08/2013
uso o delphi 7..se puder me ajudar, agradeço...
GOSTEI 0
Engeberto Saraiva
06/08/2013
Amigo eu consegui usando o memo no XE2, impressora em modo texto padrão, na porta USB, e enviei a fonte do memo , ficou muito bom.
Espero ter ajudado.
var
sTexto : string;
codiItem,Descricao :string;
Quant :string;
Valor : string;
SubTotal : string;
Dinheiro : string;
DATAHJ : TDateTime;
HORASHJ :TDateTime;
begin
DATAHJ := Now;
HORASHJ := Time;
Memo1.Lines.Clear;
FrmFljpdv.cdsItens.First;
Memo1.Lines.Add('====================================');
Memo1.Lines.Add('===========Mercado Nome============');
Memo1.Lines.Add(frmInformacoes_cupom.lerINI('LOCAL','ENDERECO'));
Memo1.Lines.Add('====================================');
Memo1.Lines.Add(('DATA ==>>'+DateToStr(DATAHJ))+' '+'HORAS==> '+TimeToStr(HORASHJ));
Memo1.Lines.Add(frmInformacoes_cupom.lerINI('CONTATO','TELEFONE'));
Memo1.Lines.Add('==========SEM VALOR FISCAL==========');
Memo1.Lines.Add('====================================');
while not FrmFljpdv.cdsItens.Eof do
begin
codiItem :='';
Descricao :='';
Quant := '';
Valor :='';
SubTotal :='';
codiItem := FrmFljpdv.cdsItens.FieldByName('codItem').AsString;
Descricao := FrmFljpdv.cdsItens.FieldByName('Descricao').AsString;
Quant :=IntToStr(FrmFljpdv.cdsItens.FieldByName('Quantidade').AsInteger);
Valor := FloatToStr(FrmFljpdv.cdsItens.FieldByName('Valor').AsFloat);
SubTotal := FloatToStr(FrmFljpdv.cdsItens.FieldByName('SubTotal').AsCurrency);
sTexto := codiItem+ ' ';
sTexto := sTexto+Descricao+' ';
sTexto := sTexto+'Qt.'+Quant+' ';
sTexto := sTexto+'R$'+Valor+' ';
sTexto := sTexto +'R$'+SubTotal+' ';
Memo1.Lines.Add(sTexto);
FrmFljpdv.cdsItens.Next;
end;
Memo1.Lines.Add('====================================');
Memo1.Lines.Add('FORMA DE PAGAMENTO ===>> '+DBLookupComboBox1.Text);
Memo1.Lines.Add('====================================');
Memo1.Lines.Add(lblValorPago.Caption);
Memo1.Lines.Add(lblTotal.Caption);
Memo1.Lines.Add(lblTroco.Caption);
Memo1.Lines.Add('=============VOLTE SEMPRE===========');
Memo1.Lines.Add('------------------------------------');
Memo1.Lines.Add('------------------------------------');
Memo1.Lines.Add('------------------------------------');
ImprimirMemo(Memo1);
end;
procedure TFrmFinalizarVendas.ImprimirMemo(Memo: TMemo);
var
I: integer;
F: TextFile;
begin
{ Usa na impressora a mesma fonte do memo }
Printer.Canvas.Font.Assign(Memo.Font);
AssignPrn(F);
Rewrite(F);
try
for I := 0 to Memo.Lines.Count -1 do
WriteLn(F, Memo.Lines[I]);
finally
CloseFile(F);
end;
//end;
Espero ter ajudado.
var
sTexto : string;
codiItem,Descricao :string;
Quant :string;
Valor : string;
SubTotal : string;
Dinheiro : string;
DATAHJ : TDateTime;
HORASHJ :TDateTime;
begin
DATAHJ := Now;
HORASHJ := Time;
Memo1.Lines.Clear;
FrmFljpdv.cdsItens.First;
Memo1.Lines.Add('====================================');
Memo1.Lines.Add('===========Mercado Nome============');
Memo1.Lines.Add(frmInformacoes_cupom.lerINI('LOCAL','ENDERECO'));
Memo1.Lines.Add('====================================');
Memo1.Lines.Add(('DATA ==>>'+DateToStr(DATAHJ))+' '+'HORAS==> '+TimeToStr(HORASHJ));
Memo1.Lines.Add(frmInformacoes_cupom.lerINI('CONTATO','TELEFONE'));
Memo1.Lines.Add('==========SEM VALOR FISCAL==========');
Memo1.Lines.Add('====================================');
while not FrmFljpdv.cdsItens.Eof do
begin
codiItem :='';
Descricao :='';
Quant := '';
Valor :='';
SubTotal :='';
codiItem := FrmFljpdv.cdsItens.FieldByName('codItem').AsString;
Descricao := FrmFljpdv.cdsItens.FieldByName('Descricao').AsString;
Quant :=IntToStr(FrmFljpdv.cdsItens.FieldByName('Quantidade').AsInteger);
Valor := FloatToStr(FrmFljpdv.cdsItens.FieldByName('Valor').AsFloat);
SubTotal := FloatToStr(FrmFljpdv.cdsItens.FieldByName('SubTotal').AsCurrency);
sTexto := codiItem+ ' ';
sTexto := sTexto+Descricao+' ';
sTexto := sTexto+'Qt.'+Quant+' ';
sTexto := sTexto+'R$'+Valor+' ';
sTexto := sTexto +'R$'+SubTotal+' ';
Memo1.Lines.Add(sTexto);
FrmFljpdv.cdsItens.Next;
end;
Memo1.Lines.Add('====================================');
Memo1.Lines.Add('FORMA DE PAGAMENTO ===>> '+DBLookupComboBox1.Text);
Memo1.Lines.Add('====================================');
Memo1.Lines.Add(lblValorPago.Caption);
Memo1.Lines.Add(lblTotal.Caption);
Memo1.Lines.Add(lblTroco.Caption);
Memo1.Lines.Add('=============VOLTE SEMPRE===========');
Memo1.Lines.Add('------------------------------------');
Memo1.Lines.Add('------------------------------------');
Memo1.Lines.Add('------------------------------------');
ImprimirMemo(Memo1);
end;
procedure TFrmFinalizarVendas.ImprimirMemo(Memo: TMemo);
var
I: integer;
F: TextFile;
begin
{ Usa na impressora a mesma fonte do memo }
Printer.Canvas.Font.Assign(Memo.Font);
AssignPrn(F);
Rewrite(F);
try
for I := 0 to Memo.Lines.Count -1 do
WriteLn(F, Memo.Lines[I]);
finally
CloseFile(F);
end;
//end;
GOSTEI 0
Marcello Assumpção
06/08/2013
... vou ver o que consigo
GOSTEI 0
Marcello Assumpção
06/08/2013
Eu consegui instalar o VDOPrint no RAD Studio XE6.
Pra tanto, baixei o projeto (Fontes do Projeto do VDOPrint - Download
Como é um projeto descontinuado, tive que compilar no RAD Studio XE e ver quais eram as incompatibilidades.
Só havia 1, que foi facilmente corrigida.
Abra o projeto no RAD Studio XE6.
Edite o arquivo VDODMPrinter.pas
Altere a linha 121 abaixo
FPrinterHandle: DWord;
para
FPrinterHandle: THandle;
Compile o VDOPrintBPL
Instale o VDOPrintBPL
Pronto!
Pra tanto, baixei o projeto (Fontes do Projeto do VDOPrint - Download
Como é um projeto descontinuado, tive que compilar no RAD Studio XE e ver quais eram as incompatibilidades.
Só havia 1, que foi facilmente corrigida.
Abra o projeto no RAD Studio XE6.
Edite o arquivo VDODMPrinter.pas
Altere a linha 121 abaixo
FPrinterHandle: DWord;
para
FPrinterHandle: THandle;
Compile o VDOPrintBPL
Instale o VDOPrintBPL
Pronto!
GOSTEI 0
Walter Gomes
06/08/2013
Caro Marcelo, será que você poderia explicar com detalhes como fez para o VDOPrint funcionar no XE6?
Abraços!
Abraços!
GOSTEI 0