Ola pessoas tenho um metodo que imprimi em uma impressora, ela estando local funciona na porta lpt1 normal porem n consigo imprimir na rede alguem sabe como imprimir na rede??
tem um exemplo de como eu faco pra imprimir diretamente.
t+ e boa sorte.
A
andredecotia
E se você gerasse um .bat?
S
samuelM
certo mapiei usando o net use e agora no printStream coloco o que como porta? o caminho do mapeamento da impressora é este
T:\\192.168.0.20\\HPLaserJ
F
fernandopaiva
samuelM:
certo mapiei usando o net use e agora no printStream coloco o que como porta? o caminho do mapeamento da impressora é este
T:\\192.168.0.20\\HPLaserJ
a maneira correta de se mapear impressoras na rede é esta aqui, veja.
netuseLPT1:\\hostname(ip)\compartilhamento_impressora/yes//emJavavcpoderiafazerRuntime.getRuntime().exec("net use LPT1: \\hostname(ip)\compartilhamento_impressora /yes");Runtime.getRuntime().exec("dir > lpt1");//aquifazumtesteenviandoumapaginadetestepraimpressoramapeada
Caso isso nao funcione, vc pode criar seu Runtime dessa maneira.
Runtime.getRuntime().exec("cmd /c net use LPT1: \\hostname(ip)\compartilhamento_impressora /yes");//passandoocmd
Depois basta mandar imprimir em LPT1 q ja vai sair a impressao no hostname ou ip q vc passou. Veja como eu fiz no link q mandei no meu primeiro post, nele eu imprimo direto sem ser pela rede, mas basta vc usar o Runtime pra fazer seu mapeamento.
simples.
t+ e boa sorte.
S
samuelM
cara ja esta tudo certo, o unico problema esta como disse acima em qual porta mandar!! ja estou mapeando corretamente a lpt1 porem no printStream n sei o que colocar na porta, mapiei da maneira que voce me falou ja
netuseLPT1:\\192.168.0.62\\zebradb/yes
mas n sei o que colocar no parametro porta veja:
FileOutputStreamos=null;Stringporta="?????????";try{os=newFileOutputStream(porta);PrintStreamps=newPrintStream(os);ps.println("N");ps.println("testando o printStream");ps.println("P1");ps.close();
S
samuelM
coloquei lpt1 e foi mas em branco
F
fernandopaiva
ja falei, se vc mapeou a porta LPT1 entao so pode mandar pra ela, isso é um fato.
tente ir no cmd e digitar “dir > lpt1”, se esta mapeada corretamente vai mandar a lista de diretorios de onde vc mandou.
Se esta mandando em branco é pq vc esta fazendo o PrintStream errado, veja o link do exemplo que mandei no primeiro post, nele eu mando um arquivo.txt inteiro.
caso esteja com preguica de abrir o link, aqui como fazer.
publicvoidimprimeLPT1(){try{java.io.InputStreamis=newFileInputStream("/diretorio/arquivo.txt");Scannersc=newScanner(is);FileOutputStreamfs=newFileOutputStream("LPT1:");PrintStreamps=newPrintStream(fs);while(sc.hasNextLine()){Stringlinhas=sc.nextLine();ps.println(linhas);}fs.close();}catch(IOExceptionex){JOptionPane.showMessageDialog(null,"Erro encontrado ao imprimir comanda."+ex.getMessage());}}
t+ e boa sorte.
F
fernandopaiva
aqui ainda com opcao de vc escolher a porta.
veja
publicclassImprimeComprovantes{publicvoidimprime(Filefile){try{if(file.exists()){String[]portas={"LPT1:","LPT2:"};StringportaSelecionada=(String)JOptionPane.showInputDialog(null,"Informe a porta.","Porta",JOptionPane.QUESTION_MESSAGE,null,portas,portas[0]);if(portaSelecionada!=null){java.io.InputStreamis=newFileInputStream(file);Scannersc=newScanner(is);FileOutputStreamfs=newFileOutputStream(portaSelecionada);PrintStreamps=newPrintStream(fs);while(sc.hasNextLine()){Stringlinhas=sc.nextLine();ps.println(linhas);}fs.close();is.close();sc.close();file.delete();}else{file.delete();}}}catch(IOExceptionex){JOptionPane.showMessageDialog(null,"Não foi possível imprimir comprovante, erro encontrado ao imprimir.","Erro",JOptionPane.ERROR_MESSAGE);file.delete();}}}