Impressão em matricial na rede

Delphi

19/05/2005

Olá amigos !!!

Estou com um problema, preciso emitir relatórios em várias
máquinas, gostaria de saber como posso imprimir via rede...

hoje uso a captura de porta de impressão do windows e uso a lpt1,
porém a máquina fica escrava daquela impressora..

Obrigado...


Robsons

Robsons

Curtidas 0

Respostas

Edilcimar

Edilcimar

19/05/2005

qual o windows e qual o modo de impressaão?


GOSTEI 0
Robsons

Robsons

19/05/2005

windows 98...
Impressão matricial....
modo texto em impressora lx-300


GOSTEI 0
Edilcimar

Edilcimar

19/05/2005

eu utilizo a seguinte estratégia:
verifico se o programa está em [b:07aec3704c]c[/b:07aec3704c], caso esteja mando para a porta local, caso contrário mando via rede


GOSTEI 0
Massaotoda

Massaotoda

19/05/2005

mas esta usando que comando para imprimir pela rede????
writeln??????? como vc mapeia a impressora localmente para estação local?????


GOSTEI 0
Vinicius2k

Vinicius2k

19/05/2005

Colegas,

Dêem uma olhada em http://devres.freeprohost.com/
Talvez o VDOPrint lhes atenda, mas precisarão deixar de utilizar WriteLn e passar a utilizar os métodos das próprias classes.
Usando o VDOPrint, não há problemas com impressão em rede e não é necessário mapeamento de portas.

Eventuais dúvidas, estou à disposição no [url=http://devresbb.freeprohost.com/]fórum do site[/url].

T+


GOSTEI 0
Edilcimar

Edilcimar

19/05/2005

vou no computador onde está a impressora e instalo uma impressora local compartilhada, vou nas estações e instalo uma impressora de rede apontando para a impressora que está no computador com impressora e depois faço o que disse anteriormente


GOSTEI 0
Ericlemes

Ericlemes

19/05/2005

Olha, uma vez, a alguns anos atrás, eu usei um componente chamado ´TRawPrinter´ ou ´TRawPrint´. Ele encapsula uma API do windows, q permite q vc mande um TStringList ou seqüências de writeln, se não me engano, para a impressora windows.

Quando eu falo a ´impressora windows´ estou me referindo a uma impressora, localizada por nome, na lista de impressoras cadastradas. O trablaho, apesar de texto, entra como um job no spooler, e caso a impressora esteja mapeada, imprime via rede.

Acho interessante avaliar esse componente, talvez seja a solução ideal para o teu problema.


[]´s

Eric Lemes


GOSTEI 0
Vinicius2k

Vinicius2k

19/05/2005

Ainda não ´vi´ o TRawPrinter ou TRawPrint, mas é exatamente assim que o VDOPrint (através da classe para matriciais) trabalha.
Usando a API escrevo documentos em modo RAW no spool do S.O dispensando qualquer outra providência que não seja a impressora estar instalada. Seja local ou de rede, o documento será enviado para ela.

T+


GOSTEI 0
Jorgeolimpia

Jorgeolimpia

19/05/2005

Olá pessoal!
Bom Vinicius, normalmente o TPrinter respeita a impressora-padrão instalada em seu computador, mesmo estando na rede. O que você pode fazer caso queira escolher a impressora que quer imprimir o relatório é este:

crie as seguintes variáveis:
Device : array[0..255] of char;
Driver : array[0..255] of char;
Port : array[0..255] of char;
hDMode : THandle;
iprn: Integer;

No evento OnShow do relatório liste as impressoras configuradas em seu computador em um combobox e capture a impressora padrão:

...
Printer.GetPrinter(Device, Driver, Port, hDMode);
for iprn := 0 to Printer.Printers.Count -1 do
Combobox1.Items.Add(Printer.Printers.Strings[iprn];
Combobox1.Text := Device;
...

Ao imprimir, verifique se houve mudança de impressora:

...
Printer.GetPrinter(Device, Driver, Port, hDMode);
if Combobox1.Text <> Device then
begin
Driver := ´WINSPOOL´;
Port := ´´;
Printer.SetPrinter(PChar(Combobox1.Text), Driver, Port, hDMode);
end;
...

Tente isso e qqer dúvida estou no fórum!

Jorge Olimpia


GOSTEI 0
POSTAR