2012-05-08 14 views
1

私はmyPrintableObjectという名前Printableクラスを持っているし、印刷方法は、次のようにオーバーだらけです:ページの印刷ヘルプ

public int print(Graphics g, PageFormat pf, int pageIndex) throws PrinterException 
     { 
     if(pageIndex<5) 
      { 
      pf.setOrientation(PageFormat.LANDSCAPE); 
      g.drawString("HELLO FRIEND",100,180); 
      return PAGE_EXISTS; 
      } 
     else 
      {return NO_SUCH_PAGE;} 

    } 

私は同じ文書で横向きで複数のページを印刷したかったです。最初のページを除いて印刷しています。常に縦向きに印刷されます。

どうすればこの問題を解決できますか?ここで

+0

あなたはPageFormatにgetPageFormatページング可能インターフェース – StanislavL

+0

の(int型pageIndexパラメータ)メソッドをオーバーライドする必要がありますが、あなたは詳細に説明してくださいます???? @ StanislavL – ARNAB2012

答えて

1

あなたは以下のとおりです。

PrinterJob job = PrinterJob.getPrinterJob(); 
    PageFormat pf = job.defaultPage(); 
    pf.setOrientation(PageFormat.LANDSCAPE); 
    job.setPrintable(myPrintableObject, pf); 

の作業例:

public class MyPrintable implements Printable { 

    public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException { 
     if (pageIndex < 5) { 
      graphics.drawString("HELLO FRIEND", 100, 180); 
      return PAGE_EXISTS; 
     } else { 
      return NO_SUCH_PAGE; 
     } 
    } 

    public static void main(String[] args) { 
     PrinterJob job = PrinterJob.getPrinterJob(); 
     PageFormat pf = job.defaultPage(); 
     pf.setOrientation(PageFormat.LANDSCAPE); 
     job.setPrintable(new MyPrintable(), pf); 

     boolean ok = job.printDialog(); 
     if (ok) { 
      try { 
       job.print(); 
      } catch (PrinterException ex) { 
       /* The job did not successfully complete */ 
      } 
     } 
    } 
}