как напечатать содержимое jpanel как текст? - PullRequest
1 голос
/ 16 января 2012

Я использую netbeans и у меня есть код для печати jpanel, и он работает нормально. Однако его вывод состоит в том, что он печатает jpanel как изображение. Это не идеально для меня, так как он также печатает блеклый серый цвет на заднем плане, который является размером jpanel. Я только хочу напечатать текст в jpanel, который состоит из многих jlabels. Есть ли способ напечатать содержимое jpanel в виде текста, а не изображения?

Это код, который я использовал для печати содержимого моей jpanel

    PrinterJob job = PrinterJob.getPrinterJob();
     job.setJobName("jPanel13");

     job.setPrintable (new Printable() {    
        public int print(Graphics pg, PageFormat pf, int pageNum){
            if (pageNum > 0){
            return Printable.NO_SUCH_PAGE;
            }

            Graphics2D g2 = (Graphics2D) pg;
            g2.translate(pf.getImageableX(), pf.getImageableY());
            jPanel13.paint(g2);
            return Printable.PAGE_EXISTS;
        }
     });
     boolean ok = job.printDialog();
     if (ok) {
         try {
              job.print();
         } catch (PrinterException ex) {

         }

Это распечатка jpanel, которую мне нужно распечатать. В моей программе текстовые значения jlabels могут быть изменены пользователем. Затем будут напечатаны тексты jlabels, чтобы заполнить пустые строки формы. Форма уже будет иметь записи на нем; это только пустые строки, которые я буду заполнять при печати. Вот почему важно, чтобы джабели располагались таким образом.

http://i.stack.imgur.com/kPKWe.jpg

enter image description here

1 Ответ

3 голосов
/ 16 января 2012

Если фон JPanel является единственной проблемой, вы можете вызвать print() вместо него вместо paint() и переопределить printComponent(), чтобы ничего не делать (по умолчанию просто вызывается paintComponent()).

В качестве альтернативы, просто установите цвет фона на белый во время печати. ​​

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...