Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/04/2014, 06:30
marcusaurelio
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 4 meses
Puntos: 21
Respuesta: printerjob listener

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);
            }
        }
    }


}