Impressão Java

Tenho este método para fazer impressão:

    public void imprimir(String texto) {
        PrintService[] printService = PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.AUTOSENSE, null);
        PrintService impressoraPadrao = PrintServiceLookup.lookupDefaultPrintService();
        DocFlavor docFlavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
        HashDocAttributeSet hashDocAttributeSet = new HashDocAttributeSet();

        InputStream stream = new ByteArrayInputStream((texto + "\n").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());
            }
        }
    }

Não acontece nenhum erro.

Mas também não imprime, e quando mando a impressão para o PDFCreator a página sai em branco.

Mas se eu mando uma imagem imprime normal:

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

    try {
         FileInputStream stream = new FileInputStream("C:\\Users\\Rodrigo\\Desktop\\Trab4_Luc\\teste.png");
         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());
         }
    } catch (FileNotFoundException ex) {
         JOptionPane.showMessageDialog(null, "Erro: " + e.getMessage());
    }
}

O que estou fazendo de errado?

Alguém para ajudar?