Direcionar impressão

Pessoal,
a minha aplicação (JSP/Servlet) rodará em uma rede com uma impressora no servidor (winXP) e uma em alguma máquina da rede (win também).
Estou querendo imprimir alguns relatórios em uma impressora e outros na outra impressora (vamos abstrair os motivos disso).
O sistema hoje funciona gerando arquivos PDF para os relatórios e impressos diretamente na impressora padrão do Windows.

//FOR WINDOWS 95 AND 98 USE COMMAND.COM if( osName.equals( "Windows 95" ) || osName.equals( "Windows 98" )){ Runtime.getRuntime().exec("command.com /C start acrord32 /p /h" + claim.pdf); } //FOR WINDOWS NT/XP/2000 USE CMD.EXE else { Runtime.getRuntime().exec("cmd.exe /C acrord32 /p /h" + claim.pdf); }

Como direcionar a impressão para uma impressora determinada?
Pensei em parametrizar isso em uma tabela ou arquivo. Quando imprimir um tipo de relatório X, direcionar para a impressora I1 e quando imprimir um tipo de relatório Y, direcionar para a impressora I2.

Ou, quem sabe, trocar a impressora padrão do WinXP (servidor) e simplesmente executar o código acima.
Ou ainda sei lá.

Viajei nessa?

Marcus

Ninguém precisou de algo parecido?? :frowning:

Complicado… :shock:
To me matando aqui tb pra ver se acho algo parecido com o seu…
Eu to fazendo impressao direto pra porta, e agora preciso permitir que o usuairo selecione a impressora ( no caso de rede e compartilhada ).
Dai preciso do nome completo dela para imprimir nela.
O problema é que nao acho ne como nem quem sabe como fazer isso: apresentar uma PrinterDialog() e pegar a URL da impressora selecionada.

Que Droga!!! :roll:

É isso ai…

Acho q o meu problema é maior pq tenho que imprimir usando Acrobat Reader e não jogar um texto direto na porta.

Não sei se é a mesma dificuldade.

É possível :?:

Descobrindo o nome da impressora cadastrada no windows, alguém sabe o comando para imprimir pelo DoS?

Exemplo: Recuperei o nome LX-300 que é uma impressora cadastrada no windows, como posso fazer para mandar imprimir o arquivo teste.txt através do nome da impressora?

Obrigado.

Cara,

eu também procurei um bocado sobre isto, mas nada de definitivo.

  1. Talvez exista um parâmetro do acrobat (/p /h etc) para direcionar a impressora, mas eu não conheço.

  2. Se for win 95/98 você pode editar o win.ini e alterar a impressora padrão pelo código.

  3. No NT/2000/XP, não sei, mas acho que dá prá fazer pelo registro, já que é a mesma idéia do win.ini.

  4. Pelo DOS daria para redirecionar mas, ai não é o Acrobat que vai imprimir e sai tudo errado!

  5. Não achei uma classe java que recupera alista de impressoras do sistema, talvez por ai tenha uma forma de setar a padrão.

Se achar como resolver respondo…

4. Pelo DOS daria para redirecionar mas, ai não é o Acrobat que vai imprimir e sai tudo errado!

Como se faz o redirecionamento pelo DOS?

Não sei se foi nisso que você pensou, mas…

copy c:\autoexec.bat prn

isto imprime o conteúdo de autoexec.bat para a impressora padrao (PRN)

Temos q achar a solução em cima das informações abaixo.

[code]Acrobat Notes:
1. AcroRd32.exe filename -> Executes the reader and displays a file.
2. AcroRd32.exe /p filename -> Executes the reader and prints a file.
3. AcroRd32.exe /t path printername drivername portname -> Executes the reader and prints a file while suppressing the Acrobat print dialog box, then terminating the Reader.
The four parameters of the /t option evaluate to strings.
printername -> The name of the Printer.
drivername -> Your printer drivers name i.e. whatever apperars in the Driver Used box when viewing printer properties.
portname -> The printers port. portname cannot contain any "/" characters; if it does, output is routed to the default port for that printer.

If using Acrobat, substitute Acrobat.exe in place of AcroRd32.exe meaning:
/n Launch a separate instance of the Acrobat application
/s Open Acrobat suppressing the splash screen
/o Open Acrobat suppressing the open file dialog
/h Open Acrobat in hidden mode[/code]

Olá. Tbm estou precisando imprimir coisas em rede. O meu é em txt entao com oja disseram é mais facil. Mas eu não sei redirecionar o comando para uma outra impressora…

Esses problemas ja foram resolvidos? :?:

O método q estou usando é:

out = new FileWriter(ListaInfo.getPrinter()); //impressora padrao (local)
out.write(buffer_impressora.getBuffer());
out.close();

Eu pretendo não modificar a minha implementação pois teria q modificar o sistema inteiro… eu já estou a varios dias tentando resolver esse problema e estou ficando atrasada! :roll:

Agradeço qqer ajuda (estou começando a ficar preocupada…)

Ps: Esse é o meu primeiro post no forum, entao “Olá a todos! Muito prazer” :smiley:

Alguem sabe me responder? Os q estavam tendo problemas com isso já o solucionaram?

Estou precisando meio q urgente disso… :roll: