Cita:
Iniciado por liloo6retug
Ok gracias por responder, mira el primer link es una explicacion general del uso de PrintJob, que es lo que estoy usando y el segundo link es de jasper reports, no estoy usando eso, lo que necesito es algo parecido a esto:
tengo un codigo para mandar imprimir directo en la impresora usando DocPrintJob de java para imprimir en una impresora termica una etiqueta
mi codigo es el siguiente
Código Java:
Ver originalPrintService printService = PrintServiceLookup.lookupDefaultPrintService();
String zplCommand
="codigo ZPL"; // convertimos el comando a bytes
byte[] by = zplCommand.getBytes();
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
Doc doc = new SimpleDoc(by, flavor, null);
// creamos el printjob
DocPrintJob job = printService.createPrintJob();
// imprimimos
job.print(doc, null);
el problema de aqui es que no le puedo indicar a que impresora mandar a imprimir como en este codigo
Código Java:
Ver original book.append(new IntroPage(), printJob.defaultPage());
printJob.setPageable(book);
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);//este es el problema xq aqui lo uso como arreglo y en DocPrintJob no
for (PrintService printService : services) {//aqui saco todos los nombres de las impresoras instaladas
if (count == 0) {//aqui lo que hago es obtener el nombre de la primer impresora encontrada, q en este caso es la predeterminada
printName = printService.getName();
}
count = count + 1;
}
aset.add(new PrinterName(printName, null
services = PrintServiceLookup.lookupPrintServices(null, aset);
for (PrintService printService : services) {
PrintService printers[] = PrintServiceLookup.lookupPrintServices(null, aset);
if (printers.length == 1) {
printJob.setPrintService(printers[0]);//aqui es donde le digo a que impresora mandar a imprimir
try {
printJob.print();
band = true;
count = 0;
resp();
PrintException.printStackTrace();
}
}
el problema con el que me encuentro es q no usar DocprintJob utilizando
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
solo
PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
si no puedo cambiar la impresora predeterminada con codigo java, alguien podria ayudarme a decirle al DocPrintJob a que impresora imprimir?
Nota: Necesito Mandar Imprimir Directo sin que me salga la ventana de dialogo donde selecciono la impresora, en ninguno de los dos ejemplos uso el printDialog()
Gracias de Antemano