gracias fuzzylog por tu respuesta...
te pego los imports y los metodos que tienen que ver con la impresion..
y respecto a lo que me pasaste... es sobre printjob... y segun vi para imprimir el jpanel por medio de graphics2d es necesario usar PRINTERJOB.. y ahi es donde no encuentro... los listeners..
de todas formas.. estaria dispuesto a cambiarlo.. por printjob para manejar los eventos.. pero.. necesitaria data para lograr imprimir el graphics2d
Código:
import Clases.Util;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import static java.awt.print.Printable.NO_SUCH_PAGE;
import static java.awt.print.Printable.PAGE_EXISTS;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.MediaPrintableArea;
import javax.print.attribute.standard.OrientationRequested;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.text.DefaultStyledDocument;
import net.sourceforge.barbecue.Barcode;
import net.sourceforge.barbecue.BarcodeException;
import net.sourceforge.barbecue.BarcodeFactory;
public class dialogImprmirEtiqueta extends javax.swing.JDialog implements Printable {
@Override
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) {
if (pageIndex > 0) { /* We have only one page, and 'page' is zero-based */
return NO_SUCH_PAGE;
}
Graphics2D g2d = (Graphics2D) graphics;
g2d.translate(0, 0);
panelImprimir.printAll(graphics);
return PAGE_EXISTS;
}
private void Imprimir() {
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
String printName = getImpresora();
//String printName="PDFCreator";
if (services.length > 0) {
try {
PrintService myService = null;
int hayImpresora = 0;
for (PrintService service : services) {
//System.out.println(service.getName());
if (service.getName().equals(printName)) {
myService = service;
hayImpresora = 1;
break;
}
}
if (hayImpresora == 0) {
JOptionPane.showMessageDialog(null, "No se Encontro la Impresora: " + printName);
//System.exit(0);
}
// myService.addPrintServiceAttributeListener(new MyPrintServiceAttributeListener());
PrinterJob job = PrinterJob.getPrinterJob();
job.getPrintService().addPrintServiceAttributeListener(null);
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(OrientationRequested.LANDSCAPE);
aset.add(new MediaPrintableArea(2, 2, 29, 90, MediaPrintableArea.MM));
job.setPrintService(myService);
job.setJobName("Imprimir Etiqueta "+getEmpresaEmpresa());
job.setPrintable(this);
job.print(aset);
} catch (PrinterException ex) {
Logger.getLogger(dialogImprmirEtiqueta.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}