Olá, estou tentando fazer a impressão de uma string em java, porem quando tento imprimir ela em uma impressora normal, não sai nada, nem da erro. Porém quando peço para imprimir na impressora “Microsoft Print to PDF” ela gera um arquivo mas não é possível ler ele, aparece q esta corrompido.
Segue o codigo:
public void imprimir(String txt) {
try {
InputStream prin = new ByteArrayInputStream(txt.getBytes());
DocFlavor docFlavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
SimpleDoc docTexto = new SimpleDoc(prin, docFlavor, null);
PrintService impressora;
PrintService[] ps = PrintServiceLookup.lookupPrintServices(docFlavor, null);
for (PrintService p : ps) {
Scanner sc = new Scanner(System.in);
System.out.println("Selecionar impressora " + p.getName() + "?");
String sel = sc.nextLine();
if (sel.equals("1")) {
impressora = p;
PrintRequestAttributeSet printer = new HashPrintRequestAttributeSet();
printer.add(new JobName("Impressao", null));
printer.add(OrientationRequested.PORTRAIT);
printer.add(MediaSizeName.ISO_A4);
DocPrintJob printJob = impressora.createPrintJob();
try {
printJob.print(docTexto, (PrintRequestAttributeSet) printer);
} catch (PrintException ex) {
JOptionPane.showInputDialog(null, "Erro ao imprimir o cupom: " + ex, "Erro de impressão", JOptionPane.ERROR_MESSAGE);
}
prin.close();
break;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
No caso era para imprimir o conteúdo da string conforme abaixo:
Pedido App Della Massa
Pedido: 5
Data:2021-10-04 14:14:23.0
Nome:João Pedro da Silva
Telefone: 12988272288
Rua:Tigre
CEP:06810490 - Num: 226
Bairro:independencia ll
Comp.:BorgesESFIHA
Quantidade: 1
1 - Calabresa
Obs.: testeESFIHA
Quantidade: 2
1 - Mix Chocolate
Obs.: teste doceLANCHE
Quantidade: 1
1 - Hot Dog Simples
Obs.: tranquiloPIZZA
Quantidade: 2
1 - Americana
Obs.: recheadaPIZZA
Quantidade: 1
1 - Choconana
Obs.:PIZZA
Quantidade: 1
1/2 - Degradê com Frutas
1/2 - Doce de Leite
Obs.: testeSubTotal: 194.4
Taxa de Entrega: 4.00
Total Geral: 198.4
Forma de Pag: Cartão de Credito
Troco: 0
Já verifiquei e a String txt e esta recebendo corretamente o texto. Alguém sabe algo que possa estar errado?