Boa tarde.
Alguem saberia me informar como localizar o caminho da impressora na WEB. Minha aplicação roda no servidor, preciso que o usuário selecione a impressora que neste caso é uma matricial e direcione a impressão para a impressora selecionada. Desde de já agradeço pela ajuda.
Para melhor compreensão estou utilizando a classe FileOutputStream como podem ver “FileOutputStream outputFile = new FileOutputStream(“Aqui teria que passar o caminho da impressora”);” porém não está funcionando.
Pessoal, como ninguém respondeu, saberiam informar então como localizar a impressora na rede local? Por exemplo: FileOutputStream outputFile = new FileOutputStream(" ??? "); no meu caso está é uma impressora matricial. Já tentei passar a porta em que ela está, mas sem sucesso, desde já agradeço.
nao sei se isso ajuda, mas quando eh preciso imprimir direto na porta via rede, eh comum usar o comando net use
tipo:
NET USE LPT1 \192.168.0.110\nome_da_impressora
depois vc manda imprimir direto na LPT1 normalmente.
[]'s
Bom está informação ajuda sim, na verdade estou fazendo isto apenas de forma paliativa no momento, depois vou ter que dar um jeito de capturar qualquer impressora em uma lista. Neste caso eu consegui resolver passando o ip da impressora, o nome do compartilhamento e depois o nome da impressora.
Talvez você consiga me dar mais uma força, estou trabalhando com os comandos nativos da impressora porém vi este exemplo mas ainda não testei e não tenho certeza se consiguirei enviar os comandos para a impressora usando este código. Segue abaixo.
public static void print(String toPrint, String printerName) throws PrintException {
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(OrientationRequested.PORTRAIT);
aset.add(new JobName(“Impressao”, null));
PrintService printer = null;
for (PrintService p : PrinterJob.lookupPrintServices()) {
if (p.getName().equalsIgnoreCase(printerName)) {
printer = p;
break;
}
}
DocPrintJob docPrint = printer.createPrintJob();
InputStream stream = new ByteArrayInputStream(toPrint.getBytes());
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc doc = new SimpleDoc(stream, flavor, null);
docPrint.print(doc, aset);
}
Bom dia.
Oi mauricioadl, implementei uma classe bem próximo deste exemplo e já está funcionando. O problema agora é que preciso pegar o endereço da impressora padrão ou e de alguma impressora em uma lista, já tenho um método que seleciona a impressora em uma lista, porém o problema é que preciso do caminho da impressora, por exemplo: compartilhamento/nome da impressora//porta. Saberia me informar se existe algum método padrão em java que me retorne um caminho da impressora.
[quote=fabiofb7]Bom dia.
Oi mauricioadl, implementei uma classe bem próximo deste exemplo e já está funcionando. O problema agora é que preciso pegar o endereço da impressora padrão ou e de alguma impressora em uma lista, já tenho um método que seleciona a impressora em uma lista, porém o problema é que preciso do caminho da impressora, por exemplo: compartilhamento/nome da impressora//porta. Saberia me informar se existe algum método padrão em java que me retorne um caminho da impressora. [/quote]
vou ficar devendo, que eu saiba nao existe nada desse tipo.
vamu ver se alguem da comu conhece.
O que prreciso na verdade é o seguinte:
FileOutputStream outputFile = new FileOutputStream(aqui precido do caminho completo: //compartilhamento/nome da impressora/ porta);
PrintStream out = new PrintStream (outputFile);
A impressora padrão eu consigo setar assim: PrintService printerPadrao = PrintServiceLookup.lookupDefaultPrintService(); Porém ele retorna apenas o nome da impressora, neste caso não tenho o nome da porta ou compartilhamento.
esse negocio de endereço normalmente deve vir de alguma configuração. ql o motivo pra vc nao colocar isso na config da maquina?
Está aplicação está no servidor, tudo o que está relacionado a impressora matricial está rodando via aplet. Pensando que na maquina de cada usuário pode ter uma porta diferente ou impressora diferente, isso daria muito trabalho ficar configurando manualmente, ainda teria que pensar que cada usuário teria um cadastro no banco e a intenção é deixar isso independente.
Veja (http://www.guj.com.br/java/8789-descobrindo-o-caminho-de-impressora-de-rede) o mesmo problema que eu tenho, porém não entendi muito bem como conseguiram.
Alguem já tentou pegar a porta de uma impressora selecionada com o objeto PrintService: printer PrintService; preciso pegar a porta. Selecionar a impressora tranquilo e como faço para pegar a porta…