2013-07-10 3 views

ответ

2

В моем коде я использую следующий фрагмент. IStatisticsGraph - это мой собственный интерфейс для создания статистики, поэтому это не важно для вас. В моем главном графическом интерфейсе есть кнопка для печати, которая вызывает эту функцию.

public class StatisticPage 
    implements Printable 
{ 
    private ChartPanel mChart = null; 

    public StatisticPage(ChartPanel oChart) 
    { 
     mChart = oChart; 
    } 

    public int print(Graphics g, PageFormat format, int pageIndex) 
    { 
     if(mChart == null) 
      return Printable.NO_SUCH_PAGE; 

     return mChart.print(g, format, pageIndex); 
    } 
} 

В MainGUI:

private void onPrint() 
{ 
    try 
    { 
     Object o = mStatisticSelectorBox.getSelectedItem(); 
     if(o == null) 
      return; 

     IStatisticGraph gr = (IStatisticGraph)o; 
     StatisticPage page = gr.getPage(); 
     if(page == null) 
      return; 

     PrinterJob prt = PrinterJob.getPrinterJob(); 

     PageFormat pf0 = prt.defaultPage(); 
     PageFormat pf1; 
     pf0.setOrientation(PageFormat.LANDSCAPE); 
     pf1 = prt.pageDialog(pf0); 
     if(pf1.equals(pf0) == true) 
      return; 

     Book book = new Book(); 
     book.append(page, pf1); 
     prt.setPageable(book); 

     try 
     { 
      prt.print(); 
     } 
     catch (PrinterException exception) 
     { 
     } 
    } 
    catch(Throwable e) 
    { 
     showError(e.getClass().getCanonicalName(), e.getLocalizedMessage(), e); 
    } 
} 
+0

+1 для самого простого решения –

+0

@Devolus, спасибо человеку !! – vijay

Смежные вопросы