Já tentei de várias maneiras, mas está imprimindo em branco
[code]public class Impressao {
// variavel estatica porque será utilizada por inumeras threads
private static PrintService impressora=null;
public Impressao() {
detectaImpressoras();
}
// O metodo verifica se existe impressora conectada e a
// define como padrao.
public void detectaImpressoras() {
try {
DocFlavor df = DocFlavor.SERVICE_FORMATTED.PAGEABLE;
PrintService[] ps = PrintServiceLookup.lookupPrintServices(df, null);
for (PrintService p: ps) {
System.out.println("Impressora encontrada: " + p.getName());
impressora=PrintServiceLookup.lookupDefaultPrintService();
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("ERRO detectaImpressoras(): " + e);
}
}
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);
return false;
} else {
InputStream stream = new ByteArrayInputStream(texto.getBytes());
FileInputStream textstream = null;
try {
textstream = new FileInputStream("C:\\file.TXT");
} catch (FileNotFoundException ffne) {
}
if (textstream == null) {
return false;
}
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc doc = new SimpleDoc(textstream, flavor, null);
DocPrintJob job = impressora.createPrintJob();
try {
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
//aset.add(MediaSize.ISO.A4);
aset.add(new Copies(1));
aset.add(Sides.DUPLEX);
job.print(doc, aset);
} catch (PrintException e) {
e.printStackTrace();
System.out.println("ERRO imprime(): " + e);
System.out.println("Erro ao imprimir: \r\n\r\n" + e);
return false;
}
}
return true;
}
}[/code]
Veja q comentei uma linha, q qdo seto o atributo para formato A4 dá erro