Impressao com DocPrintJob - Erro

Tenho este trecho de código:

PrintService[] printService = PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.AUTOSENSE, null);
PrintService impressoraPadrao = PrintServiceLookup.lookupDefaultPrintService();
DocFlavor docFlavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
HashDocAttributeSet hashDocAttributeSet = new HashDocAttributeSet();

String texto = "teste teste teste teste teste teste teste teste";
InputStream stream = new ByteArrayInputStream(texto.getBytes());
Doc doc = new SimpleDoc(stream, docFlavor, hashDocAttributeSet);
PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
PrintService printServico = ServiceUI.printDialog(null, 300, 200, printService, impressoraPadrao, docFlavor, printRequestAttributeSet);
   if (printServico != null) {
      DocPrintJob docPrintJob = printServico.createPrintJob();
      try {
         docPrintJob.print(doc, printRequestAttributeSet);
      } catch (PrintException e) {
         JOptionPane.showMessageDialog(null, "Erro: " + e.getMessage());
   }
}

Este código não imprime. Quando mando a impressão para uma impressora, não acontece nada, mesma coisa de não ter enviado nada para a impressora.
Tentei instalar o PDFCreator e enviar a impressão nele, ai ele abre o PDFCreator normal e gera o arquivo, mas o arquivo é gerado em branco…

Esse é um dos codigos que tenho udasado para imprimir! esta funcional, e pode te ajudar

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());
                impressora = p;
                /*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(StandardCharsets.UTF_8));
                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;
    }