Foros del Web » Programación para mayores de 30 ;) » Java »

PrinterJob Graphics2D Impresión en ticket

Estas en el tema de PrinterJob Graphics2D Impresión en ticket en el foro de Java en Foros del Web. Me varia margen superior e izquierdo, Cuando uso: job.printDialog(); y cuando comento //job.printDialog(); Imagen cuando uso job.printDialog(); Imagen cuando NO uso //job.printDialog(); me varia los ...
  #1 (permalink)  
Antiguo 22/02/2017, 20:11
Avatar de soy_nicanor  
Fecha de Ingreso: mayo-2010
Mensajes: 374
Antigüedad: 14 años, 6 meses
Puntos: 3
PrinterJob Graphics2D Impresión en ticket

Me varia margen superior e izquierdo, Cuando uso:
job.printDialog();
y cuando comento //job.printDialog();

Imagen cuando uso job.printDialog();


Imagen cuando NO uso //job.printDialog();
me varia los margenes.


Esto es mi codigo:
Código Java:
Ver original
  1. import java.awt.Color;
  2. import java.awt.Font;
  3. import java.awt.Graphics;
  4. import java.awt.Graphics2D;
  5. import java.awt.print.PageFormat;
  6. import java.awt.print.Paper;
  7. import java.awt.print.Printable;
  8. import static java.awt.print.Printable.NO_SUCH_PAGE;
  9. import static java.awt.print.Printable.PAGE_EXISTS;
  10. import java.awt.print.PrinterException;
  11. import java.awt.print.PrinterJob;
  12. import javax.swing.JFrame;
  13. import javax.swing.JLabel;
  14. import javax.swing.JPanel;
  15.  
  16. public class PrintJPanel {
  17.     private JFrame Formulario;
  18.     private JPanel Panel;
  19.     private JLabel Texto;
  20.    
  21.     public PrintJPanel(){
  22.         Contruir();
  23.         ImprimirPanel();
  24.     }
  25.    
  26.     String Dato="";
  27.     public void Contruir(){
  28.         Dato = "<html><table WIDTH='265'><tr><td><p align=justify>Comenzó en la empresa de bienes raíces de su padre,20 Elizabeth Trump and Son,21 focalizada en la vivienda de clase media para arrendar en Brooklyn, Queens y Staten Island. Uno de sus primeros proyectos, todavía en la universidad, fue la revitalizacion del complejo de apartamentos de Swifton Village en Cincinnati, en el estado de Ohio, que su padre había comprado por 5,7 millones de dólares en 1962.</p></td></tr><table></html>";
  29.         Formulario = new JFrame("Ventana");        
  30.         Formulario.setSize(270, 450);
  31.         Formulario.setLocationRelativeTo(null);                       // centramos la ventana en la pantalla
  32.         Formulario.setResizable(false);                               // hacemos que la ventana no sea redimiensionable
  33.         Formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  34.        
  35.         Panel = new JPanel();
  36.         Panel.setBackground(Color.white);
  37.        
  38.         Texto = new JLabel();
  39.         Texto.setText(Dato);
  40.         Texto.setFont(new Font("Arial Narrow", Font.ROMAN_BASELINE, 10));
  41.         Texto.setForeground(Color.black);
  42.        
  43.         Panel.add(Texto);
  44.         Formulario.add(Panel);
  45.         Formulario.setVisible(true);
  46.     }
  47.    
  48.     public void ImprimirPanel() {
  49.         PrinterJob job = PrinterJob.getPrinterJob();
  50.         job.setPrintable(new MiPrintable());
  51.         try {            
  52.             job.printDialog();
  53.             job.print();            
  54.         } catch (PrinterException ex) { }
  55.         Formulario.dispose();
  56.     }
  57.  
  58.  
  59.     class MiPrintable implements Printable{
  60.         public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
  61.             if (pageIndex > 0){
  62.                 return NO_SUCH_PAGE;
  63.             }else{
  64.                 Graphics2D g2d = (Graphics2D)graphics;
  65.                 //Punto donde empezará a imprimir dentro la pagina (100, 50)
  66.                 g2d.translate(  pageFormat.getImageableX() -5,
  67.                                 pageFormat.getImageableY() -0);
  68.                 g2d.scale(1.0,1.0); //Reducción de la impresión al 50% - (0.50,0.50)
  69.                 Panel.printAll(graphics);
  70.                 return PAGE_EXISTS;    
  71.             }
  72.         }
  73.     }
  74.    
  75.    
  76.    
  77.     public static void main(String[] args) {
  78.         // TODO code application logic here
  79.         new PrintJPanel();
  80.     }    
  81. }

El problema esta en linea 52 job.printDialog();

Gracias por la ayuda.
__________________
Muy Feliz

Etiquetas: https, string, ticket
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:38.