elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Página de elhacker.net en Google+ Google+


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  PrinterJob Graphics2D Impresión en ticket
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: PrinterJob Graphics2D Impresión en ticket  (Leído 178 veces)
soy_nicanor

Desconectado Desconectado

Mensajes: 85


Ver Perfil
PrinterJob Graphics2D Impresión en ticket
« en: 23 Febrero 2017, 03:17 »

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
  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. }
  82.  

El problema esta en linea 52 Cuando uso o cuando lo comento job.printDialog();

Gracias por la ayuda.


En línea

6hiii

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: PrinterJob Graphics2D Impresión en ticket
« Respuesta #1 en: 15 Marzo 2017, 03:15 »

Entendemos que con o sin esa linea de código te cambia las margenes, pero exactamente no has dicho que es lo que quieres

Un Saludo.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Mi ticket ha expirado
Juegos y Consolas
Piave 2 707 Último mensaje 22 Julio 2005, 22:51
por Piave
Impresion de Ticket
Programación Visual Basic
agutin1983 0 1,278 Último mensaje 10 Febrero 2006, 02:15
por agutin1983
No puedo usar Ticket.dll
Programación Visual Basic
luison 1 5,031 Último mensaje 23 Agosto 2009, 18:35
por seba123neo
Imprimir ticket 6.0
Programación Visual Basic
axeelcs 4 4,445 Último mensaje 12 Septiembre 2011, 12:46
por axeelcs
crear ticket de compra
PHP
geshiro 0 373 Último mensaje 6 Mayo 2016, 23:39
por geshiro
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines