Impressora

Gente, é o seguinte, estou desenvolvendo uma aplicação Java e eu preciso q essa aplicação tenha a opção de imprimir os dados cadastrados em um ArrayList.
Estava pensando em sobrescrever os toStrings dos objetos cadastrados e criar uma String contendo todas as informações dos objetos algo do tipo:

String info ="Nome: " + list.get(i).getNome() + “\n” + "Valor: " + list.get(i).getValor();

Entao eu gostaria de enviar essa String à um método que enviasse essa String à uma impressora conectada à maquina que está rodando o programa e esta imprimisse corretamente a String.

Porém, tenho muitas dúvidas… Como eu acesso a impressora? Quais métodos devo utilizar para q ela imprima determinada String? Será q alguém ai poderia postar um exemplo de como fazer isso??

Olá

Talvez ajude esse tópico: Impressão Java

Editado
Outra coisa que pode ser usado é iText ou iReport para gerar um PDF…

Espero ter ajudado
Flwss

Bem, eu já tinha visto esse tópico, mas tem algumas coisas q não entendi muito bem. Algumas classes eu nunca usei, alguém pode explicar para q servem??

Os trechos q não entendi muito bem são:

DocFlavor df = DocFlavor.SERVICE_FORMATTED.PRINTABLE;

PrintService[] ps = PrintServiceLookup.lookupPrintServices(df, null);

e

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);

Outra coisa, o q é “synchronized boolean” ?

Desculpem por tantas perguntas, mas é q se eu entregar algo ao professor q ele saiba q eu desconheça, receberei nota 0 no trabalho q estou desenvolvendo.
Por isso, tenho q conhecer muito bem todas as classes que utilizarei.

Obrigado a todos q responderem…