Imprimir Variavel String direto na impressora padrão

Galera preciso de uma coisa bem simples, imprimir o conteudo de uma String direto para impressora

package outrostests;

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;

/**

  • @author Usuario2
    */
    public class Printers {

    private static PrintService impressora;

    public Printers(){
    detectaImpressoras();
    imprime(“Oi sdfg sdfgsdfgsdfg\n rfgdfsg”);
    }

    public static void main(String[] args) {
    new Printers();
    }

    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(“Daruma”) && p.getName().contains(“Copia”)) {
    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 {
    System.out.println("Impressora: "+impressora);
    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;
    }

}

Ok, agora vamos a explicação do código.
Primeiro, “configurar” a impressora.
if (p.getName().contains(“Daruma”) && p.getName().contains(“Copia”)) {
Nessa linha troque Daruma e Copia, por palavras chaves da sua impressora.
exemplo
p.getName().contains(“HP”) && p.getName().contains(“2000”)
se usar a classe, verá que esta variavel private static PrintService impressora;
será setada ao chamar o método detectaImpressoras();
agora é só imprimir qualquer string, passando por parametro imprime(“teste string”);
Sobre a impressora padrão, imagino que alterando no código não é bem o que você queria né? mas dá para adaptar, já fiz para pegar a impressora padrão, mas usando o ireport.

Consegui realizar a impressão já , porem preciso editar a fonte e o tamanho antes de imprimir como faço isso ?