Bem, eu estava fazendo alguns testes, e reparei que a mesma rotina para impressao que utilizamos não funciona com impressoras USB.
O código que uso para imprimir é o seguinte.
DocPrintJob trabalhoImpressao = getServicoImpressao("Samsung SCX-4200 Series-SUPD")
.createPrintJob();
DocAttributeSet docAttributes = new HashDocAttributeSet();
docAttributes.add(Compression.NONE);
docAttributes.add(MediaTray.MAIN);
docAttributes.add(new DocumentName("Documente para USB", Locale
.getDefault()));
Doc doc = new SimpleDoc(new ByteArrayInputStream("Marky.Vasconcelos".getBytes()),
DocFlavor.INPUT_STREAM.AUTOSENSE, docAttributes);
trabalhoImpressao.print(doc, new HashPrintRequestAttributeSet());
Onde getServicoImpressao retorna um PrintService, mas reparei que ele realmente está retornando o PrintService da impressora com nome que passei por parametro.
Para impressoras não-USBs a impressão é enviada normal, para USB, a impressora sempre liga, aparece “Imprimindo…” mas nada é impresso, e no “device e printers” do windows não é possivel ver nenhum documento na fila para a impressora.
Já fiz este teste com 3 impressoras USB, todas tem o mesmo efeito.