2011-11-17 86 views
3

我嘗試根據Oracle的網頁的打印例子,由於某種原因,它只能打印列表的第一頁打印列表java.awt.print中只打印第一頁

我拿着打印約基本打印Oracle示例: A Basic Printing Program

和修改在這裏解釋一下我的意思是好一點點

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import java.awt.print.*; 

public class HelloWorldPrinter implements Printable, ActionListener { 


    public int print(Graphics g, PageFormat pf, int page) throws 
                 PrinterException { 

     if (page > 0) { /* We have only one page, and 'page' is zero-based */ 
      return NO_SUCH_PAGE; 
     } 

     Graphics2D g2d = (Graphics2D)g; 
     g2d.translate(pf.getImageableX(), pf.getImageableY()); 

     g.drawString("1.Hello world!", 100, 100); 
     g.drawString("2.Hello world!", 100, 300); 
     g.drawString("3.Hello world!", 100, 600); 
     g.drawString("4.Hello world!", 100, 800); 
     g.drawString("5.Hello world!", 100, 1000); 
     g.drawString("6.Hello world!", 100, 1200); 
     g.drawString("7.Hello world!", 100, 1500); 

     return PAGE_EXISTS; 
    } 

    public void actionPerformed(ActionEvent e) { 
     PrinterJob job = PrinterJob.getPrinterJob(); 
     job.setPrintable(this); 
     boolean ok = job.printDialog(); 
     if (ok) { 
      try { 
        job.print(); 
      } catch (PrinterException ex) { 
      } 
     } 
    } 

    public static void main(String args[]) { 

     UIManager.put("swing.boldMetal", Boolean.FALSE); 
     JFrame f = new JFrame("Hello World Printer"); 
     f.addWindowListener(new WindowAdapter() { 
      public void windowClosing(WindowEvent e) {System.exit(0);} 
     }); 
     JButton printButton = new JButton("Print Hello World"); 
     printButton.addActionListener(new HelloWorldPrinter()); 
     f.add("Center", printButton); 
     f.pack(); 
     f.setVisible(true); 
    } 
} 

這個例子將只打印前4行...

回答

0

我有一個類似的問題很長一段時間。 This example幫我正確分頁。正如在我的問題here中建議的那樣,請嘗試在教程示例中進行復制,並確保它可以正常工作,然後開始逐個添加一個部分,直到它停止工作,以便您可以看到問題出在哪裏。

編輯:哎呀,沒注意到答案是來自OP。哦,好吧,如果有人遇到這種情況,OP的回答不起作用,也許我的意願。