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