Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

raphaeld

Impressão Matricial

Recommended Posts

Desenvolvemos uma aplicação em Delphi 7 com Interbase 6.5. Quando é enviado um relatório para IMPRESSORA MATRICIAL Lx-300 ela automaticamente passa para o MODO de Impressão CONDENSADO, ou seja, a impressão fica mais lenta devida a maior precisão, se tornando inviável para impressão de orçamentos, pedidos e requisições. Existe algum código que possa ser implementado para corrigir esse problema ou alguma dica de configuração da impressora?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente você deve estar utilizando algum componente de relatório gráfico, tipo quick report, report builder , etc... Se você quiser continuar utilizando este componentes e ter um desempenho melhor com impressões matricias você deve utilizar as fontes da impressora matricial.

 

Faça o seguinte teste , instale na sua maquina a impressora somente texto padrão do windows e utilize a fonte que vem com ela. Você vai ver a velocidade vai ser outra mais você perde totalmente os recursos de impressão gráfica.

 

Aconselho a você utilizar um componente especifico para impressão matricial , ZReport, Fortes Report ou então manipular manualmente um arquivo texto enviando-o direto para impressora veja o exemplo :

{impressão do recibo}function TFPedido_Balcao.Imprime_Recibo():String;var   F    : TextFile; qCons  : TQuery; Linha  : String; Recibo : Real;begin  inherited;  Result := '';  try    try      Recibo := Obter_Valor_Sequence('RECIBO','',VEmpresaAtiva_ID,0);       MensagemTemporaria(4,1);      {AssignFile(F,ExtractFilePath(Application.ExeName)+'\Pedido.txt');}      AssignFile(F,'LPT1');      Rewrite(F);      qCons := TQuery.Create(Self);      qCons.DatabaseName := 'DbOrganiser';      qCons.SQL.Add('SELECT');      qCons.SQL.Add('     EMPRESA.EMP_ENDERECO');      qCons.SQL.Add('    ,EMPRESA.EMP_CGC');      qCons.SQL.Add('    ,EMPRESA.EMP_TELEF');      qCons.SQL.Add('    ,TRUNC(P.PEDF_DTA_CAD) DATA');      qCons.SQL.Add('    ,TO_CHAR(P.PEDF_DTA_CAD,''HH24:MI:SS'') HORA');      qCons.SQL.Add('    ,'+FloattoStr(Recibo)+' NUMERO');      qCons.SQL.Add('    ,PROD_DESC');      qCons.SQL.Add('    ,PP.PEDF_SERIE_1');      qCons.SQL.Add('    ,PP.PEDF_QTDE');      qCons.SQL.Add('    ,PP.PEDF_VLR_UNIT');      qCons.SQL.Add('    ,PP.PEDF_VLR_TOT');      qCons.SQL.Add('    ,P.PEDF_VLR_TOT_PED');      qCons.SQL.Add('    ,FPGTO.GEN_DESCRICAO FORMA_PGTO');      qCons.SQL.Add('    ,CLIENTE.CLI_RAZAO_SOCIAL');      qCons.SQL.Add('    ,CLIENTE.CLI_CGC_CPF');      qCons.SQL.Add('    ,CLIENTE_E.CLIE_ENDERECO');      qCons.SQL.Add('    ,USUARIO.USR_NOME');      qCons.SQL.Add('FROM');      qCons.SQL.Add('   EMPRESA');      qCons.SQL.Add('  ,PEDIDO_FAT P');      qCons.SQL.Add('  ,PEDIDO_FAT_P PP');      qCons.SQL.Add('  ,PRODUTO');      qCons.SQL.Add('  ,CLIENTE');      qCons.SQL.Add('  ,CLIENTE_E');      qCons.SQL.Add('  ,USUARIO');      qCons.SQL.Add('  ,GENER FPGTO');      qCons.SQL.Add('');      qCons.SQL.Add('WHERE');      qCons.SQL.Add('    PEDF_EMP_ID            = EMP_ID');      qCons.SQL.Add('AND PP.PEDF_PEDF_EMP_ID    = P.PEDF_EMP_ID');      qCons.SQL.Add('AND PP.PEDF_PEDF_ID        = P.PEDF_ID');      qCons.SQL.Add('AND PROD_EMP_ID            = PP.PEDF_PROD_EMP_ID');      qCons.SQL.Add('AND PROD_ID                = PP.PEDF_PROD_ID');      qCons.SQL.Add('AND CLI_EMP_ID             = P.PEDF_CLI_EMP_ID');      qCons.SQL.Add('AND CLI_ID                 = P.PEDF_CLI_ID');      qCons.SQL.Add('AND CLIENTE_E.CLIE_GEN_ID  = 2');      qCons.SQL.Add('AND CLIE_CLI_EMP_ID        = CLI_EMP_ID');      qCons.SQL.Add('AND CLIE_CLI_ID            = CLI_ID');      qCons.SQL.Add('AND USR_ID                 = P.PEDF_USR_ID');      qCons.SQL.Add('AND FPGTO.GEN_TGEN_ID      = P.PEDF_GEN_TGEN_ID_FORMA_PGTO_DE');      qCons.SQL.Add('AND FPGTO.GEN_EMP_ID       = P.PEDF_GEN_EMP_ID_FORMA_PGTO_DE');      qCons.SQL.Add('AND FPGTO.GEN_ID           = P.PEDF_GEN_ID_FORMA_PGTO_DE');      qCons.SQL.Add('AND P.PEDF_ID              ='+InttoStr(Pedf_ID));      qCons.SQL.Add('AND P.PEDF_EMP_ID          ='+FloattoStr(VEmpresaAtiva_ID));      qCons.Open;      {montando o cabeçalho do recibo}      Linha := 'S E T R A N S P - GO';      Writeln(F,Linha);      Linha := Complementa_Texto(qCons.FieldByName('EMP_ENDERECO').Text,' ',48);      Writeln(F,Linha);      Linha := 'CNPJ:'+Complementa_Texto(qCons.FieldByName('EMP_CGC').Text,' ',20) +' FONE:'+Complementa_Texto(qCons.FieldByName('EMP_TELEF').Text,' ',15);      Writeln(F,Linha);      Linha := Complementa_Texto('','-',48);      Writeln(F,Linha);      Linha := 'RECIBO VALE TRANSPORTE';      Writeln(F,Linha);      Linha := 'NUMERO:'+qCons.FieldByName('NUMERO').Text+' DATA:'+qCons.FieldByName('DATA').Text+' HORA:'+qCons.FieldByName('HORA').Text;      Writeln(F,Linha);      Linha := Complementa_Texto('','-',48);      Writeln(F,Linha);      Linha := 'DESC            SER       QTD     UNIT    TOTAL';      Writeln(F,Linha);      while not qCons.EOF do begin        Linha := Complementa_Texto(qCons.FieldByName('PROD_DESC').Text,' ',16) + Complementa_Texto(' ',' ',7)+ Complementa_Texto(FormatFloat('000000',qCons.FieldByName('PEDF_QTDE').Value),' ',6)+ Complementa_Texto_Direita(FormatFloat(',0.00',qCons.FieldByName('PEDF_VLR_UNIT').Value),' ',9)+ Complementa_Texto_Direita(FormatFloat(',0.00',qCons.FieldByName('PEDF_VLR_TOT').Value),' ',9);        WriteLn(F,Linha);        qCons.Next;      end;      Linha := Complementa_Texto('','-',48);      Writeln(F,Linha);      Linha := 'TOTAL.....:R$'+ Complementa_Texto_Direita(FormatFloat(',0.00',qCons.FieldByName('PEDF_VLR_TOT_PED').Value),' ',12);      Writeln(F,Linha);      Linha := Complementa_Texto(qCons.FieldByName('FORMA_PGTO').Text,'.',10) + ':R$'+ Complementa_Texto_Direita(FormatFloat(',0.00',qCons.FieldByName('PEDF_VLR_TOT_PED').Value),' ',12);      Writeln(F,Linha);      Linha := 'TOTAL.....:R$'+ Complementa_Texto_Direita(FormatFloat(',0.00',qCons.FieldByName('PEDF_VLR_TOT_PED').Value),' ',12);      Writeln(F,Linha);      Linha := AnsiLowerCase(Extenso(qCons.FieldByName('PEDF_VLR_TOT_PED').Value));      Writeln(F,Linha);      Linha := Complementa_Texto('','-',48);      Writeln(F,Linha);      Linha := 'CNPJ/CPF.:'+qCons.FieldByName('CLI_CGC_CPF').Text;      Writeln(F,Linha);      Linha := 'NOME.....:'+qCons.FieldByName('CLI_RAZAO_SOCIAL').Text;      Writeln(F,Linha);      Linha := 'ENDERECO.:'+qCons.FieldByName('CLIE_ENDERECO').Text;      Writeln(F,Linha);      Linha := Complementa_Texto('','-',48);      Writeln(F,Linha);      Linha := 'ATENDENTE......:'+qCons.FieldByName('USR_NOME').Text;      Writeln(F,Linha);      Linha := 'POSTO DE VENDA.:TRANSIT';      Writeln(F,Linha);      Linha := Complementa_Texto('','-',48);      Writeln(F,Linha);      Linha := 'VALOR DE CORRETAGEM OU COMISSAO: ZERRO. NOS TERMOS DA IN.SRF N. 480/2004';      Writeln(F,Linha);    except      on E:Exception do begin        Result := E.Message;      end;    end;    finally    qCons.Close;    FreeAndNil(qCons);    CloseFile(F);    MensagemTemporaria(4,2);  end;end;
Espero ter ajudado.

Sebastião Júnior.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1hm...o q você pode fazer é diminuir os dpi s da impressora...no demais..só se você fizer na mão mesmo.. [ writeLn ] ou usando algum componente que imprime linha/linha

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.