Почему Java всегда печатает на принтере Windows по умолчанию? - PullRequest
0 голосов
/ 22 марта 2019

Я хочу напечатать JPanel, который я создал. Но если пользователь хочет выбрать принтер с помощью PrintDialog, независимо от того, какой принтер выбран, он всегда печатает на принтере по умолчанию в Windows.

Вот мой код:

Сначала я создаю страницу Book

public static Book  pBook = new Book(); 

 public static class ReportPage implements Printable{
    @Override
    public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) {
        if (pageIndex >= 1) {
            return Printable.NO_SUCH_PAGE;
        }
        Graphics2D g2d = (Graphics2D) graphics;
        //g2d.scale(0.2275d,0.225d);
        pagePanel.paint(g2d);

        return Printable.PAGE_EXISTS;
    }
}

Способ печати:

public static void printReport(){
    PrinterJob pj = PrinterJob.getPrinterJob();
    PageFormat pf = new PageFormat();
    Paper paper   = pf.getPaper();
    pf.setPaper(paper);
    pBook.append(new ReportPage(),pf);
    pj.setPageable(pBook);      
    if (pj.printDialog()) {
        try {pj.print();}
            catch (PrinterException exc){
            System.out.println(exc);
        }
    }   
}

1 Ответ

0 голосов
/ 25 марта 2019

проблема, почему java печатает на принтере по умолчанию:

вы создали файл jar и запустили там приложение.Не пытайтесь работать в NetBeans-IDE.

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