2014-10-13 3 views
0

У меня есть print метод ниже от класса:Java Печать: Определить страницу, печать

public void print(EditorPanePrinter epp) { 
    try { 
     PrinterJob pj=PrinterJob.getPrinterJob(); 
     boolean ok = pj.printDialog(); 
     if(ok) { 
      pj.setPageable(epp); 
      pj.print(); 
     } 
    } catch (PrinterException e1) { 
     e1.printStackTrace(); 
    } 

} 

EditorPanePrinter является JEditorPane обернут JPanel для печати предпросмотра. См. here.

После нажатия «ОК» в диалоговом окне печати страница печатается правильно с принтера.

Для печати более 1 страниц, особенно с большим количеством страниц для печати, я хочу показать диалоговое окно, на котором печатаются страницы: «Печать страницы 1 из 100» при печати первой страницы «Печать страницы 2 из 100 «когда печатается вторая страница и т. д.

Я искал всюду, и я не нашел решения. Как это сделать?

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

ответ

1

Pageable изготовлен из Printable с, когда каждый Printable называется, он будет принят pageIndex, что система пытается напечатать, который может использоваться, например, для печати номера страницы, на выходе ...

Для получения более подробной информации см. Printable.

В зависимости от структуры вы печать, вы можете выполнить это изнутри SwingWorker и использовать publish/process возможности для изменения активного номера страницы. См. Worker Threads and SwingWorker для получения более подробной информации.

+0

Спасибо. Я понимаю. Можете ли вы опубликовать SSCCE, в частности, о том, как я могу получить 'pageIndex' из' 'print()' Printable' '' методу 'doInBackground()' 'SwingWorker'? Из того, что я знаю, 'pj.print()' метод из кода выше блоков. –

+0

«pageIndex» передается на интерфейс «Printable», вы читали связанные JavaDocs, это основная печать 101 ... – MadProgrammer

+0

Благодарим вас за понимание. Я сделал, чтобы создать класс-оболочку, расширяющий 'EditorPanePrinter', поэтому я могу получить' pageIndex' и обновить диалоговое окно, чтобы показать страницу, напечатанную в настоящее время. –