Impressão matricial [RESOLVIDO]

Estou fazendo uma classe que deve enviar os dados de uma nota fiscal para imprimir numa impressora matricial… e estive olhando os tópicos aqui no fórum e achei algumas alternativas…
Uma delas é usar o java.print… usando os objetos printService e coisa e tal…só que neste caso não consegui fazer com que envie para a impressora somente texto, me parece que esta api manda o texto como se fosse imagens…deixando a impressão mais lenta …

String texto="Texto a ser impresso ";
 PrintService impressora;
  DocFlavor df = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
             PrintService[] ps = PrintServiceLookup.lookupPrintServices(df, null);
           impressora = ps[0];            


 DocPrintJob dpj = impressora.createPrintJob();
            InputStream stream = new ByteArrayInputStream(texto.getBytes());

                 DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;

                 DocAttributeSet das = new HashDocAttributeSet();

                 Doc doc = new SimpleDoc(stream, flavor,das);

                 dpj.print(doc, null);

Então tentei fazer este esquema

FileOutputStream outputFile = new FileOutputStream("/dev/lp0");
            PrintWriter out = new PrintWriter(outputFile);
            out.println("***************************************");
            out.println("testando");
            out.close();
            outputFile.close();

mas neste caso dá o erro de acesso negado…Sei que é óbvio, pois o linux não deixa mecher num arquivo do sistema sem ser root…e acho que não daria nem no windows vista com seu sistema de permissões (mas não testei ainda no windows vista…só imagino )mas como o sistema que estou desenvolvendo vai ser utilizado por usuários comuns… tenho que achar uma maneira de fazer isso…
Por isso pergunto…
Algum de vcs já passou por isso…e como implementaram uma resolução?

Ninguém nunca adicionou no sistema o recurso de impressão fiscal? Se sim, como fizeram?

impressora = ps[0] é sua impressora matricial?

tenta com isso

PrintService[] ps = PrintServiceLookup.lookupPrintServices(df, null);
			
			for (PrintService print : ps) {

				//System.out.println("Impressora encontrada: " + p.getName());

				// No lugar do text vc coloca o nome da impressora
				if (print.getName().contains("MP-2100 TH")) {
					
					//System.out.println("Impressora Selecionada: " + p.getName());
					
					impressora = print ;
					
					break;
				}
			}