Pessoal estou quebrando a cabeça para abrir a opção do windows de impressão…
Ao clicar em um JButton gostaria que abrisse a opção de escolher a impresora do windows…podem me ajudar???
Obrigado,
Boa Noite
Pessoal estou quebrando a cabeça para abrir a opção do windows de impressão…
Ao clicar em um JButton gostaria que abrisse a opção de escolher a impresora do windows…podem me ajudar???
Obrigado,
Boa Noite
Só de dar uma pesquisada aki no guj, axei isso:
package br.com.ipuc.Impressao;
import javax.print.*;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
// Essa classe é a responsavel pela impressao. Ela detecta a impressora
// instalada, recebe o texto e o imprime.
public class Impressao {
// variavel estatica porque será utilizada por inumeras threads
private static PrintService impressora;
public Impressao() {
detectaImpressoras();
}
// O metodo verifica se existe impressora conectada e a
// define como padrao.
public void detectaImpressoras() {
try {
DocFlavor df = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
PrintService[] ps = PrintServiceLookup.lookupPrintServices(df, null);
for (PrintService p: ps) {
System.out.println("Impressora encontrada: " + p.getName());
if (p.getName().contains("Text") || p.getName().contains("Generic")) {
System.out.println("Impressora Selecionada: " + p.getName());
impressora = p;
break;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public synchronized boolean imprime(String texto) {
// se nao existir impressora, entao avisa usuario
// senao imprime texto
if (impressora == null) {
String msg = "Nennhuma impressora foi encontrada. Instale uma impressora padrão \r\n(Generic Text Only) e reinicie o programa.";
System.out.println(msg);
} else {
try {
DocPrintJob dpj = impressora.createPrintJob();
InputStream stream = new ByteArrayInputStream(texto.getBytes());
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc doc = new SimpleDoc(stream, flavor, null);
dpj.print(doc, null);
return true;
} catch (PrintException e) {
e.printStackTrace();
}
}
return false;
}
}
mas isso não me ajuda…preciso de algum exemplo simples com algo pra ler…
é algo simples tipo
JButton print = new JButton ("Imprimir");
e abaixo viria o comando(que eu não sei!)
Mostrando as impressoras:
PrinterJob printerJob = PrinterJob.getPrinterJob();
if (printerJob.printDialog()) {
try {
printerJob.print();
} catch (PrinterException ex) {
ex.printStackTrace();
}
}
Agora tem o seguinte…
Pra imprimir legal você vai ter que dar uma boa lida na documentação, eu pelo menos não achei muito fácil e nem um pouco intuitivo…
Boa sorte!
Espero ter ajudado.
Abraço!
Nâo deu certo…
assim que eu entro na frame já abre a opção das impressoras e quero que ao clicar no botão print abra as opções…
Mas Valeu…
Nâo deu certo…
assim que eu entro na frame já abre a opção das impressoras e quero que ao clicar no botão print abra as opções…Mas Valeu…
Amigo então seu problema é com evento e não com a impressão.
Exemplo:
JButton botao = new JButton("Imprimir");
//implementar aqui caracteristicas do botao
botao.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evento) {
//chama a função para imprimir aqui dentro
}
});
Espero ter ajudado.
Abraço!
Só complementando o que o renaned disso, o problema tá no evento do botão mesmo…
Vc usa netbeans ou eclipse…
Se ainda não souber sobre eventos do botão, recomendo que tente usar pelo console o algoritimo que ele disse, com System.out.print();