Проблема в печати данных Jpanel - PullRequest
1 голос
/ 21 апреля 2009

Я работаю над приложением Swings У меня есть Jpanel, я столкнулся с серьезной проблемой при печати данных JPanel с «карточным принтером» . Это работает нормально, когда я использую цветной принтер, но когда я использую карточный принтер, ничего не печатается. Я проверил принтер, используя несколько изображений, и он печатает нормально, когда я печатаю любое изображение напрямую, но с помощью моего приложения возникают проблемы, когда принтер для печати карточек не получает никаких данных, пока бумажный принтер печатает нормально. Кто-нибудь сталкивался с этим раньше или кто-нибудь, пожалуйста, помогите мне. Это мой код:

 private void printCard(){

    PrinterJob printjob = PrinterJob.getPrinterJob();
    printjob.setJobName(" CUSTOMER CARD ");

    printjob.setPrintable (new Printable() {      
         public int print(Graphics pg, PageFormat pf, int pageNum){                  

             pf.setOrientation(PageFormat.LANDSCAPE);

             if (pageNum > 0){
                return Printable.NO_SUCH_PAGE;
             }

             Graphics2D g2 = (Graphics2D) pg;
             g2.translate(pf.getImageableX(), pf.getImageableY());
             g2.translate( 0f, 0f );
             jLayeredPane2.paint(g2);

             return Printable.PAGE_EXISTS;
         }
    });

    if (printjob.printDialog() == false)
       return;

    try {
       printjob.print();
    }
    catch (PrinterException ex) {
       System.out.println("NO PAGE FOUND."+ex);
    }
 }

1 Ответ

0 голосов
/ 11 сентября 2009

Я столкнулся с проблемами на некоторых принтерах, которым не нравится, как работает печать Java, и похоже, что это связано с тем, как принтеры поддерживают векторную печать. Попробуйте вместо этого растровую печать. Визуализируйте ваш JLayeredPane в BufferedImage с разрешением 300 точек на дюйм и распечатайте BufferedImage.

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