Como imprimir arquivo?

6 respostas
C

Por favor como faço para imprimir um arquivo num programa java? :wink:
me ajudem sou novo no assunto e não achei nada!
Obrigado!!

6 Respostas

fiaux

Como assim imprimir?? Na impressora?

C

Sim1 Voce da o caminho e ele busca o arquivo e imprime

fiaux

Cara tem como sim, usando umas classes Printer da vida do pacote do Java. Eu não sei, nunca usei, mas já vi dúvida disso aqui no GUJ, pesquisa aí. Ou quem souber ajuda ae.

Pedrosa

Segue um exemplo:

import java.io.ByteArrayInputStream;
import java.io.InputStream;

import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;

// 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) {
				if(p.getName()!=null && p.getName().contains("hp")){
					System.out.println("Impressora Selecionada: " + p.getName());
					System.out.println("Impressora encontrada: " + p.getName());
					impressora = p;
				}	
			}
		} 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;
	}
	public static void main(String[] args) {
		new Impressao().imprime("teste pedrosa dfsdfsdfsdffsdfsfdffsf" + System.getProperty("line.separator") + "asdad");
	}
}
C

Entendi.
Obrigado! Valeu mesmo!

L

Pode também dar uma pesquisada no jasper report…

Criado 19 de junho de 2008
Ultima resposta 20 de jun. de 2008
Respostas 6
Participantes 4