Caros Javaneses,
 
Baixei do site da Sun um programa (tutorial) que mostra como pode ser gerado um relatório contendo páginas com layouts diferentes. Fiz algumas modificações no programa e após muita ralação decidi pedir ajuda. O programa que segue atachado em um arquivo .txt deveria imprimir duas páginas: Na primeira, o programa está imprimindo corretamente o texto "Primeira Página". Na segunda página, no entanto, onde deveria ser impresso o texto "Segunda Página", não está aparecendo nada, isto é, a página é impressa em branco. Alguém saberia dizer porque isto está acontecendo?
 
Muito obrigado pela atenção.
 
Carlos Ribeiro
Universidade Federal Fluminense
[EMAIL PROTECTED]
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.print.*;

public class Relatorio extends JPanel implements ActionListener
{   final static JButton button = new JButton("Imprimir");

    public Relatorio() 
    {   button.addActionListener(this);
    }

    public void actionPerformed(ActionEvent e) 
    {   PrinterJob job = PrinterJob.getPrinterJob();
        PageFormat portrait = job.defaultPage();
                        
        Book bk = new Book();
        bk.append(new PrimeiraPagina(), portrait);
        bk.append(new SegundaPagina(), portrait);
        job.setPageable(bk);    
                
        if (job.printDialog()) 
        {   try { job.print(); }  
            catch (Exception exc) { /* Handle Exception */ }
        }
    }

    public static void main(String[] args) 
    {   WindowListener l = new WindowAdapter() 
           {   public void windowClosing(WindowEvent e) {System.exit(0);}
               public void windowClosed(WindowEvent e) {System.exit(0);}
           };
        
        JFrame f = new JFrame();
        f.addWindowListener(l);
        JPanel panel = new Relatorio();
        panel.add(button);
        f.getContentPane().add(panel);
        f.setSize(300, 200);
        f.show();
    }
}

class PrimeiraPagina implements Printable 
{   Font fnt = new Font("Helvetica-Bold", Font.PLAIN, 48);
    
    public int print(Graphics g, PageFormat pf, int pageIndex)
        throws PrinterException 
    {   g.setFont(fnt);
        g.setColor(Color.black);
        g.drawString("Primeira Pagina", 100, 200);
        return Printable.PAGE_EXISTS;
    }
}

class SegundaPagina implements Printable 
{   Font fnt = new Font("Helvetica-Bold", Font.PLAIN, 48);
    
    public int print(Graphics g, PageFormat pf, int pageIndex)
                throws PrinterException 
    {   g.setFont(fnt);
        g.setColor(Color.black);
        g.drawString("Segunda Pagina", 100, 200);
        return Printable.PAGE_EXISTS;
    }
}
  • Impressão Ricardo Munhoz Santiago
    • Carlos Ribeiro

Responder a