2013-04-03 4 views
0

Я пытаюсь отправить JTable и JPanel в принтер одного задания печати, как это:Печать нескольких компонентов

  PrintRequestAttributeSet attr = new HashPrintRequestAttributeSet(); 
      attr.add(OrientationRequested.LANDSCAPE); 

      MessageFormat header = new MessageFormat("Page {0}"); 
      Printable p1 = table.getPrintable(JTable.PrintMode.FIT_WIDTH, header, null); 

      PageFormat pf = new PageFormat();     

      Printable p2 = new ComponentPrinter().returnIt(jPanel1); 

      Book book = new Book(); 
      book.append(p1, pf); 
      book.append(p2, pf); 

      PrinterJob pj = PrinterJob.getPrinterJob(); 

      pj.setPageable(book); 

      if (pj.printDialog(attr)){ 
       try { 
        pj.print(attr); 
       } catch (PrinterException ex) { 
        Exceptions.printStackTrace(ex); 
       } 
      } 

Моя проблема, это только печатает первые печати добавлены в книгу; в этом случае JTable. Если я поменяю порядок и сначала добавлю панель, тогда она будет печатать только панель. Может кто-нибудь указать на ошибку?

+0

Любая помощь [здесь] (http://stackoverflow.com/a/10251531/230513)? – trashgod

+0

К сожалению, нет. Это почти то же самое, что и я. Это дало мне идею попробовать методы printDialog() и print() вместо параметров с параметрами. Диалоговое окно принтера затем отображает 2 страницы для печати, но только печатает один. Я попробовал напечатать ТОЛЬКО вторую страницу, но затем печать застряла. –

+0

Ответ [здесь] [здесь] [здесь]: http: //stackoverflow.com/questions/14775753/printing-multiple-jtables-as-one-job-book-object-only-prints-1st -table? rq = 1 –

ответ

0

Ответ here.

Книга пропускает неправильную страницуIndex к добавленным печатным материалам. Для получения дополнительной информации и решения нажмите на ссылку.

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