Fórum Como imprimir na Matricial em rede utilizando RSPrint #364090

18/09/2008

0

Boa tarde a todos....

Estou tentando imprimir um relatório para NF utilizando o componente RSPrint, mas a minha impressora esta em rede.
Como devo fazer para identificar a impressora na rede?

Obrigado.
Uelinton


Uelinton_reis

Uelinton_reis

Responder

Posts

18/09/2008

Digaopachesen

Uma dica que utilizava diretamente no windows, nao sei se é o seu caso...
no pront do Dos, digita: net use lpt1 caminhodaimpressora /YES;
assim o windows entendera que vc vai enviar um impressao na lpt1 e ele vai direcionar esta impressao para o caminho informado na rede.
para verificar se esta ok digite: NET USE . ai ele vai mostrar os caminhos mapeados. para desativar esta impressora e voltar a utilizar localmente digite: NET USE LPT1 /DELETE; Assim ele vai eliminar este mapeamento.
para entrar no pront do Dos no winXP, va em iniciar executar, digite CMD, e Ok, espero ter ajudado


Responder

Gostei + 0

19/09/2008

Uelinton_reis

Muito boa a dica....

Mas utilizando o delphi tem alguma maneira?


Responder

Gostei + 0

21/01/2011

Samuel Rocha

Tive o mesmo problema, basta substituir a procedure 'procedure EnumPrt(st: TStrings;var Def: integer);' por
procedure EnumPrt(st: TStrings;var Def: integer);
type
  PPrInfoArr = ^TPrInfoArr;
  TPrInfoArr = array [0..0] of TPRINTERINFO2;
var
  i,Indx,Level: integer;
  buf: pointer;
  Need,Returned,Flags: dword;
  PrInfoArr: PPrInfoArr;
begin
  st.Clear;
  Def:=0; Level:=2;
  Flags := PRINTER_ENUM_CONNECTIONS or PRINTER_ENUM_LOCAL;;
  EnumPrinters(Flags,nil,Level,nil,0,Need,Returned);
  GetMem(buf,Need);
  try
    EnumPrinters(Flags,nil,Level,PByte(buf),Need,Need,Returned);
    PrInfoArr:=buf;
    {$RANGECHECKS OFF}
    for i:=0 to Returned-1 do begin
      Indx:=st.Add(PrInfoArr[i].pPrinterName);
      if (PrInfoArr[i].Attributes AND PRINTER_ATTRIBUTE_DEFAULT)>0 then Def:=Indx;
    end;
    {$RANGECHECKS ON}
  finally
    FreeMem(buf);
  end;
end;
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar